当前位置:实例文章 » C#开发实例» [文章]bitmap图像转byte数组(c#实现)

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#中进行进一步的处理和操作。

相关标签:c#开发语言
其他信息

其他资源

Top