基于VB6.0的数字图像编程实例

http://tech.ddvip.com   2006年07月29日    社区交流

本文详细介绍基于VB6.0的数字图像编程实例

  Private Type RGBQUAD
 rgbBlue As Byte
 rgbGreen As Byte
 rgbRed As Byte
 rgbReserved As Byte
End Type

  上述结构中,参数rgbBlue表示蓝色分量,参数rgbGreen 绿色分量;参数rgbRed表示红色分量;参数rgbReserved为保留位,设置为0既可。对于各个颜色的分量来说,它们分布在0-255之间,数值越大,亮度越大,反之则亮度越小。

  需要说明的是,BITMAPINFOHEADER结构和调色板数据合在一起就构成了BITMAPINFO结构,这个结构在显示位图文件时能够用到。该结构在VB中声明如下:

  Private Type BITMAPINFO
 bmiHeader As BITMAPINFOHEADER
 bmiColors(0 To 255) As RGBQUAD
End Type

  (4)位图数据

  对于位图文件来说,一行的图像数据叫做一个扫描行,一个扫描行的长度必须是4的倍数(字节),如果不是,则需要补齐。计算公式:LineBytes=((biWidth*biBitCount+31)And &HFFFFFFE0)\8,通常情况下DIB的扫描行是逆序存储的(相对于屏幕坐标系而言),即屏幕上的第一行是DIB位图数据的最后一行。对于256色位图来说,它用8bit表示一个像素的颜色索引,也就是说,位图显示时,根据当前索引值来到位图的调色板中确定该像素的颜色;对于真彩色图象来说,位图文件中没有调色板信息,它直接用24个bit位表示一个像素的颜色,每个字节表示一种基色,也就是R、G、B分量中的一个值,需要注意的是,真彩色位图文件中三个字节的排列顺序是BGR,而不是传统的RGB。

  二、位图文件的显示

  对位图文件的结构了解以后,我们就能顺利读取位图文件中的各种信息,然后结合特定的显示函数就可以将位图文件显示出来,本文中这个特定的显示函数是StretchDIBits(),它在VB中的声明如下:

作者:刘涛    责编:豆豆技术应用

正在加载评论...