bitmap图像转byte数组(c#实现)
发布人:shili8
发布时间:2023-12-31 16:29
阅读次数:80
在C#中,我们可以使用System.Drawing命名空间中的Bitmap类来处理图像。下面是一个示例,演示了如何将一个Bitmap图像转换为byte数组。
csharpusing System; using System.Drawing; using System.Drawing.Imaging; class Program{ static void Main() { //读取图像文件 Bitmap bitmap = new Bitmap("image.jpg"); // 将图像转换为byte数组 byte[] byteArray = BitmapToByteArray(bitmap); // 打印byte数组的长度 Console.WriteLine("Byte array length: " + byteArray.Length); } static byte[] BitmapToByteArray(Bitmap bitmap) { // 锁定位图的像素数据 BitmapData bitmapData = bitmap.LockBits(new Rectangle(0,0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat); // 计算像素数据的字节数 int bytes = Math.Abs(bitmapData.Stride) * bitmap.Height; // 创建一个byte数组来存储像素数据 byte[] byteArray = new byte[bytes]; // 将像素数据复制到byte数组中 System.Runtime.InteropServices.Marshal.Copy(bitmapData.Scan0, byteArray,0, bytes); // 解锁位图的像素数据 bitmap.UnlockBits(bitmapData); return byteArray; } }
在上面的示例中,我们首先使用Bitmap类加载了一个图像文件。然后,我们调用BitmapToByteArray方法将Bitmap图像转换为byte数组。在BitmapToByteArray方法中,我们首先锁定位图的像素数据,然后计算像素数据的字节数,并创建一个byte数组来存储像素数据。最后,我们将像素数据复制到byte数组中,并解锁位图的像素数据。
通过这个示例,我们可以很容易地将Bitmap图像转换为byte数组,以便在C#中进行进一步的处理和操作。