图片的 rgb信息 byte[] 直接转换为bmp文件
方法1:
///
/// rgb像素值转换为bmp文件
///
/// rgb像素数组
/// 图片宽
/// 图片高
/// bmp文件名
/// note:
/// 好像说buffer存的图片长、宽都要是4的倍数,我这里没做适配,可能不是4的倍数可能bmp文件会有问题
public static void ConvertRGB2Bmp(byte[] buffer, int width, int height, string filename)
{
using (FileStream fs = File.Open(filename, FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
bw.Write('B');
bw.Write('M');//BM 2
bw.Write(40 + 14 + buffer.Length);//SIZE 4
bw.Write((ushort)0);//bfReserved1 2
bw.Write((ushort)0);//bfReserved2 2
bw.Write(40 + 14); //4
bw.Write(40); //4
bw.Write(width);
bw.Write(height);
bw.Write((ushort)1);
bw.Write((ushort)24);
bw.Write(0);
bw.Write(buffer.Length);
bw.Write(0);
bw.Write(0);
bw.Write(0);
bw.Write(0);
bw.Write(buffer, 0, buffer.Length);
bw.Flush();
}
}
}
方法2:使用BitmapData,用Marshal.Copy将直接复制到BitmapData中,然后返回就是bitmap对象,直接save
这个一大堆,到处都是