资源说明:查看位图的信息(右键查看):
1.文件头
2.信息头
3.RGB掩码(如果有的话)
显示出来的形式如下:
BITMAPFILEHEADER* = 0x02800048
BITMAPFILEHEADER
.bfType = 0x4D42
.bfSize = 552158
.bfReserved1 = 0
.bfReserved2 = 0
.bfOffBits = 66
BITMAPINFOHEADER
.biSize = 40
.biWidth = 353
.biHeight = 391
.biPlanes = 1
.biBitCount = 32
.biCompression = BI_BITFIELDS
.biSizeImage = 552092
.biXPelsPerMeter = 0
.biYPelsPerMeter = 0
.biClrUsed = 0
.biClrImportant = 0
Red Mask = 00FF0000
Green Mask = 0000FF00
Blue Mask = 000000FF
说明:
1.第一行为内存中malloc出来的地址,由于是虚拟内存,不看也罢
2.该程序不止可以查看BITMAPINFOHEADER类型的位图,
其余三种类型也可查看,分别为:
BITMAPCOREHEADER、BITMAPV4HEADER、BITMAPV5HEADER
3.最后三行的RGB Mask是颜色掩码,对于BITMAPINFOHEADER类型来说,不一定有。
4.右键功能是查看信息,左键是左右镜像操作,由于是底层数据直接每行左右互换,
而对于1、4位深的这两种位图,底层数据操作涉及位操作,而我还在写这个位图类,
故暂不支持,只支持8位以上的水平镜像操作。
5.支持剪切板操作,并且是以CF_DIB或CF_DIBV5呼叫GetClipboardData函数的,
复制时,也是以该参数呼叫SetClipboardData函数的。
你可以复制其他地方的图片过来,以查看图片属性。
6.程序中运行中保存在内存中的图片是BITMAPFILEHEADER*指针,不是HBITMAP,
呼叫的显示函数是SetDIBitsToDevice函数。
7.鼠标在图片上移动是,右边填充鼠标点的颜色,标题栏也有相关显示。
下边显示鼠标点附近11*11像素范围的放大图像,正中间用十字叉线画出。
取色是直接在底层取数据解析。
8.改程序在《windows程序设计》上的一个例子改编而来,并且正在完善该位图类中,
以加入更多丰富的底层操作功能。
改试验程序主要供想研究位图结构的人查看用。
9.windows搞出了4种位图种类,真作孽~~
另,16、24、32位深的位图也可以有颜色表的,该程序已考虑在内。
10.下面四种压缩格式暂不支持:
BI_RLE8、BI_RLE4、BI_JPEG、BI_PNG
11.随带的附件中,有几张不同格式的位图,你可以试验打开查看。
有问题联系:hastings1986@163.com
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。