C# bmp转 byte[] 只需要纯像素点数据,比如这张图1920x1080,那这个byte[]大小应该是2073600,请给出正确的代码
时间: 2024-10-12 18:10:41 浏览: 18
在C#中,如果你只需要图片的像素数据(即RGB值),并且不包括BMP文件头和元数据等额外信息,你可以使用System.Drawing.Imaging namespace中的Bitmap类来进行转换。下面是一个示例代码片段,它将读取一张1920x1080的图片并只获取像素数据转换成byte[]:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
public byte[] BitmapToPixelData(Bitmap bitmap)
{
// 确保图像宽度和高度正确
if (bitmap.Width != 1920 || bitmap.Height != 1080)
throw new ArgumentException("Image size is not 1920x1080");
// 创建一个新的位图缓冲区,仅包含像素数据
using (var memoryStream = new MemoryStream())
{
bitmap.Save(memoryStream, ImageFormat.Bgra32); // Bgra32格式包含Alpha通道
memoryStream.Seek(0, SeekOrigin.Begin); // 移动流的位置到开头
var pixelData = new byte[memoryStream.Length];
memoryStream.Read(pixelData, 0, pixelData.Length);
return pixelData;
}
}
// 使用示例
Bitmap myBitmap = new Bitmap("path_to_your_image.bmp");
byte[] pixelArray = BitmapToPixelData(myBitmap);
//
阅读全文