在https://blog.csdn.net/zhanghanx/article/details/80807759一文中,介绍了如何读取envi标准数据格式的影像图,接下来介绍如何使用这些数据进行彩色合成显示以及灰度图像的显示。
一、彩色合成
1、首先数据转换,在前面的文章中,像素值的存储方式是BSQ,但是想要通过bitmap显示的话,像素值的排列必须是BIP,并且三种颜色的顺序是BGR(千万不要弄错了,否则合成的图像是不对的)。
2、根据生成图像的行数和列数,声明一个新的Bitmap, 其中PixelFormat.Format24bppRgb设置了像素的类型为每个颜色为8位量化。具体的可以查看官方文档的说明。
3、声明一个BitmapData类,锁定内存地址。
4、将数据存储到内存中,其中BItmap DATa.Scan0指向开始的地址。
5、解锁内存区域
6、返回Bitmap即可。
代码如下:
private static Bitmap ToColorBitmap2(byte[] rawValues, int width, int height)
{
try
{
Bitmap bmp = new Bitmap(width, height, PixelF