c# - Can I safely use array of bytes in Bitmap in struct? -


i have following code, pixeldata byte array of raw pixeldata:

// pin pixeldata gc cannot move while use it. gchandle handle = gchandle.alloc(pixeldata, gchandletype.pinned);  intptr pixeldata2address = handle.addrofpinnedobject();  // stride size of 1 line in bmp. int stride = bitmap.width * samplesperpixel;  // copy pixeldata new bitmap. bitmap image = new bitmap(bitmap.width, bitmap.height, stride, pixelformat.format24bpprgb, pixeldata2address);  imagedata imagedata; imagedata.bitmap = image; imagedata.imagenumber = imagenumber;            // unpin pixeldata. handle.free(); 

my question is, can still use imagedata struct safely after have freed handle? on msdn read in constructor of bitmap:

the caller responsible allocating , freeing block of memory specified scan0 parameter. however, memory should not released until related bitmap released.

so understand long want use image need keep handle "unfreed". count imagedata.bitmap? or assignment operator in line imagedata.bitmap = image; making "deep copy" of bitmap?


Comments

Popular posts from this blog

php - trouble displaying mysqli database results in correct order -

depending on nth recurrence of job in control M -

sql server - Cannot query correctly (MSSQL - PHP - JSON) -