位图的字节数据,如何快速转换为位图对象

在工业控制领域,从相机获取的图像信息通常仅为像素字节数据。要将其显示为位图,需在数据前添加bmp文件头。本文介绍了如何获取文件头信息(通过直接读取bmp文件的前1078字节),并强调了调整头信息(如显示方式、图像宽高)以及拼接图像数据的注意事项,特别指出此方法适用于单通道8位位图。

      在工业控制领域,相机返回给上层的图像信息,一般只会有像素信息,也就是说我们拿到的图片实际上是像素字节数据。但是如果需要在电脑上显示一般需要将这些数据封装到一个bmp位图文件中。然后才能后很好的在上层应用中显示。实际这个操作知识需要在这些像素字节数据前增加bmp的文件头信息,就可以完成位图的封装。

   1、如何知道文件头信息?

       我这里使用了一个比较投机的方法,直接通过FileStream打开一张单通道8位位图,拿到他的前1078个字节,这就是此位图文件的头部信息。代码如下

byte[] bmlHead;
using (FileStream fstream = File.Open("D://1.bmp", FileMode.Open))
{
   fstream.Position = 0;
   fstream.Read(bmphead, 0, 1078);
   MemoryStream ms = new MemoryStream(bmphead);
   string imgStr  = Convert.ToBase64String(bmphead);
   StreamWriter sw = new StreamWriter("D://bmpHeader.bin", false);
   sw.Write(imgStr);
}

我们来看一下保存到文件后的数据:

    2、如何完成图像数据与位图数据的拼接?

这里有几点需要注意:

1、此方法的头信息拼接不能直接拼接,还需要对头信息做一些调整,比如显示方式,图像宽高等等。

2、本文演示使用的是单通道8位位图文件获取的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值