软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|开发客
您现在的位置:天极网 > 开发频道 > Visual C++中DDB与DIB位图编程全攻略
全文

Visual C++中DDB与DIB位图编程全攻略

2005-10-13 08:44作者:宋宝华出处:天极网责任编辑:方舟
  4. DIB位图编程

  4.1位图文件格式

  先来分析DIB位图文件的格式。位图文件分为四部分:

  (1)位图文件头BITMAPFILEHEADER

  位图文件头BITMAPFILEHEADER是一个结构体,长度为14字节,定义为:

typedef struct tagBITMAPFILEHEADER
{
 WORD bfType; //文件类型,必须是0x424D,即字符串"BM"
 DWORD bfSize; //文件大小,包括BITMAPFILEHEADER的14个字节
 WORD bfReserved1; //保留字
 WORD bfReserved2; //保留字
 DWORD bfOffBits; //从文件头到实际的位图数据的偏移字节数
} BITMAPFILEHEADER;

  (2)位图信息头BITMAPINFOHEADER

  位图信息头BITMAPINFOHEADER也是一个结构体,长度为40字节,定义为:

typedef struct tagBITMAPINFOHEADER
{
 DWORD biSize; //本结构的长度,为40
 LONG biWidth; //图象的宽度,单位是象素
 LONG biHeight; //图象的高度,单位是象素
 WORD biPlanes; //必须是1
 WORD biBitCount;
 //表示颜色时要用到的位数,1(单色), 4(16色), 8(256色), 24(真彩色)
 DWORD biCompression;
 //指定位图是否压缩,有效的值为BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS等,BI_RGB表示不压缩
 DWORD biSizeImage;
 //实际的位图数据占用的字节数,即 biSizeImage=biWidth’ × biHeight,biWidth’是biWidth 按照4的整倍数调整后的结果
 LONG biXPelsPerMeter; //目标设备的水平分辨率,单位是每米的象素个数
 LONG biYPelsPerMeter; //目标设备的垂直分辨率,单位是每米的象素个数
 DWORD biClrUsed; //位图实际用到的颜色数,0表示颜色数为2biBitCount
 DWORD biClrImportant; //位图中重要的颜色数,0表示所有颜色都重要
} BITMAPINFOHEADER;

  (3)调色板Palette

  调色板Palette针对的是需要调色板的位图,即单色、16色和256色位图。对于不以调色板方式存储的位图,则无此项信息。调色板是一个数组,共有biClrUsed个元素(如果该值为0,则有2biBitCount个元素)。数组中每个元素是一个RGBQUAD结构体,长度为4个字节,定义为:

typedef struct tagRGBQUAD
{
 BYTE rgbBlue; //蓝色分量
 BYTE rgbGreen; //绿色分量
 BYTE rgbRed; //红色分量
 BYTE rgbReserved; //保留值
} RGBQUAD;

  (4)实际的位图数据ImageDate

  对于用到调色板的位图,实际的图象数据ImageDate为该象素的颜色在调色板中的索引值;对于真彩色图,图象数据则为实际的R、G、B值:

  a.单色位图:用1bit就可以表示象素的颜色索引值;

  b.16色位图:用4bit可以表示象素的颜色索引值;

  c. 256色位图:1个字节表示1个象素的颜色索引值;

  d.真彩色:3个字节表示1个象素的颜色R,G,B值。

  此外,位图数据每一行的字节数必须为4的整倍数,如果不是,则需要补齐。奇怪的是,位图文件中的数据是从下到上(而不是从上到下)、从左到右方式存储的。

IT培训

软件资讯·软件下载尽在天极软件

相关搜索:
关注此文读者还看过
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868 023-63659988
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|52PK游戏网|IT分众