C# 将bitmap图转成整数数组
时间: 2023-08-18 13:06:10 浏览: 210
好的,可以使用C#中的Bitmap类和Marshal类来实现这个过程。下面是一个示例代码:
```
Bitmap bitmap = new Bitmap("path/to/bitmap.png"); // 读取Bitmap文件
Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
BitmapData bmpData = bitmap.LockBits(rect, ImageLockMode.ReadWrite, bitmap.PixelFormat); // 获取Bitmap的像素数据
IntPtr ptr = bmpData.Scan0; // 获取像素数据的指针
int bytes = Math.Abs(bmpData.Stride) * bitmap.Height; // 计算像素数据的字节数
byte[] rgbValues = new byte[bytes]; // 定义一个byte数组
Marshal.Copy(ptr, rgbValues, 0, bytes); // 将指针指向的像素数据复制到byte数组中
int[] intValues = new int[bitmap.Width * bitmap.Height]; // 定义一个int数组
for (int i = 0; i < bytes; i += 4)
{
intValues[i / 4] = (rgbValues[i + 3] << 24) | (rgbValues[i + 2] << 16) | (rgbValues[i + 1] << 8) | (rgbValues[i]);
} // 将byte数组中的数据转换为int数组
bitmap.UnlockBits(bmpData); // 释放Bitmap的像素数据
```
这个代码片段将读取一个Bitmap文件,将其像素数据转换为整数数组,并将结果存储在intValues变量中。注意,在转换过程中,需要注意像素数据的排列方式和字节顺序。
阅读全文