// 性能最高,其数组和像素一一对应
public static void test1(Image img)
{
Bitmap bmp = new Bitmap(img);
BitmapData bitmapData = bmp.LockBits(new Rectangle(new Point(0, 0), img.Size), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
byte[] BGRValues = new byte[bitmapData.Stride * bitmapData.Height];
IntPtr Ptr = bitmapData.Scan0;
System.Runtime.InteropServices.Marshal.Copy(Ptr, BGRValues, 0, BGRValues.Length);
bmp.UnlockBits(bitmapData);
}
// 性能较低,数组内容较少,内容未知
public static void test2(Image img)
{
System.Drawing.ImageConverter ic = new System.Drawing.ImageConverter();
byte[] btImage1 = new byte[0];
btImage1 = (byte[])ic.ConvertTo(img, btImage1.GetType());
}
// 性能较低,数组内容为图片格式内容,格式未知
public static void test3(Image img)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream();
img.Save(ms,ImageFormat.Bmp);
byte[] byteImage = new Byte[0];
byteImage = ms.ToArray();
}
从图像转换到byte[]数组的几种方法
最新推荐文章于 2019-09-29 10:45:00 发布