当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

BMP位图文件构造及平滑缩放[VC/C++编程]

赞助商链接



  本文“BMP位图文件构造及平滑缩放[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

-- 用普通办法显示BMP位图,占内存大,速度慢,在图形缩小时,失真严重,在低颜色位数的设备上显示高颜色位数的图形图形时失真大.本文彩取视频函数显示BMP位图,可以消除以上的缺陷.

---- 1、BMP文件构造

---- 1. BMP文件构成

---- BMP文件由文件头、位图信息头、颜色信息和图形数据四部份构成.

---- 2. BMP文件头

---- BMP文件头数据构造含有BMP文件的范例、文件大小和位图起始位置等信息.

---- 其构造定义以下:

typedef struct tagBITMAPFILEHEADER
{
WORDbfType;  // 位图文件的范例,必须为BM
DWORD  bfSize;  // 位图文件的大小,以字节为单位
WORDbfReserved1; // 位图文件保存字,必须为0
WORDbfReserved2; // 位图文件保存字,必须为0
DWORD  bfOffBits; // 位图数据的起始位置,以相关于位图
// 文件头的偏移量表示,以字节为单位
} BITMAPFILEHEADER;

---- 3. 位图信息头 ----

BMP位图信息头数据用于阐明位图的尺寸等信息.

typedef struct tagBITMAPINFOHEADER{
  DWORD biSize;  // 本构造所占用字节数
  LONGbiWidth; // 位图的宽度,以像素为单位
  LONGbiHeight; // 位图的高度,以像素为单位
  WORD  biPlanes; // 目标设备的级别,必须为1
  WORD  biBitCount// 每个像素所需的位数,必须是1(双色),
  // 4(16色),8(256色)或24(真彩色)之一
  DWORD biCompression;  // 位图压缩范例,必须是 0(不压缩),
  // 1(BI_RLE8压缩范例)或2(BI_RLE4压缩范例)之一
  DWORD biSizeImage; // 位图的大小,以字节为单位
  LONGbiXPelsPerMeter; // 位图水平辨别率,每米像素数
  LONGbiYPelsPerMeter; // 位图垂直辨别率,每米像素数
  DWORD biClrUsed;// 位图实际利用的颜色表中的颜色数
  DWORD biClrImportant;// 位图显示历程中重要的颜色数
} BITMAPINFOHEADER;

---- 4. 颜色表

---- 颜色表用于阐明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD范例的构造,定义一种颜色.RGBQUAD构造的定义以下:

typedef struct tagRGBQUAD {
BYTErgbBlue;// 蓝色的亮度(值范围为0-255)
BYTErgbGreen;  // 绿色的亮度(值范围为0-255)
BYTErgbRed; // 红色的亮度(值范围为0-255)
BYTErgbReserved;// 保存,必须为0
} RGBQUAD;

颜色表中RGBQUAD构造数据的个数有biBitCount来肯定:

当biBitCount=1,4,8时,辨别有2,16,256个表项;

当biBitCount=24时,没有颜色表项.

位图信息头和颜色表构成位图信息,BITMAPINFO构造定义以下:

typedef struct tagBITMAPINFO {
  BITMAPINFOHEADER bmiHeader;  // 位图信息头
  RGBQUAD bmiColors[1]; // 颜色表
} BITMAPINFO;


  以上是“BMP位图文件构造及平滑缩放[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • BMP位图文件构造及平滑缩放
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .