Растровое изображение для int [] с использованием Marshal.Copy ()
м используюMarshal.Copy()
скопировать информацию о пикселе изBitmap
дляint[]
В массиве проблема заключается в том, что информация, поступающая в этот массив, поступает неправильно, например:
[0] = -8682109;
[1] = -8682109;
[2] = -8616573;
[3] = -8616573;
[4] = -8550527;
and so on...
код для метода:
private unsafe int[] BmpToBytes_Unsafe(Bitmap bmp)
{
BitmapData bData = bmp.LockBits(new Rectangle(new Point(), bmp.Size),
ImageLockMode.ReadOnly,
PixelFormat.Format32bppRgb);
// number of bytes in the bitmap
byteCount = bData.Stride * (bmp.Height);
int[] bytes = new int[byteCount / 4];
Marshal.Copy(bData.Scan0, bytes, 0, byteCount/4);
// don't forget to unlock the bitmap!!
bmp.UnlockBits(bData);
return bytes;
Когда я использовалbyte[]
массив, информация, которая была сохранена, была правильной, поэтому я нене знаю, что здесь происходит.