最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

我的图像的BMP文件信息

来源:动视网 责编:小OO 时间:2025-09-25 03:14:53
文档

我的图像的BMP文件信息

位图文件头BITMAPFILEHEADER位图信息头BITMAPINFOHEADER调色板Palette实际的位图数据ImageDatetypedefstructtagBITMAPFILEHEADER{WORD          bfType;指定文件类型,必须是0x424D,即字符串“BM”,DWORDbfSize;指定文件大小,包括这14个字节。WORD          bfReserved1;为保留字,不用考虑WORD          bfReserved2;为保留字,不用考虑DWO
推荐度:
导读位图文件头BITMAPFILEHEADER位图信息头BITMAPINFOHEADER调色板Palette实际的位图数据ImageDatetypedefstructtagBITMAPFILEHEADER{WORD          bfType;指定文件类型,必须是0x424D,即字符串“BM”,DWORDbfSize;指定文件大小,包括这14个字节。WORD          bfReserved1;为保留字,不用考虑WORD          bfReserved2;为保留字,不用考虑DWO

位图文件头BITMAPFILEHEADER

位图信息头BITMAPINFOHEADER

调色板Palette

实际的位图数据ImageDate

typedef struct tagBITMAPFILEHEADER

 {

WORD           bfType;         指定文件类型,必须是0x424D,即字符串“BM”,

DWORD     bfSize;         指定文件大小,包括这14个字节。

WORD           bfReserved1; 为保留字,不用考虑

WORD           bfReserved2; 为保留字,不用考虑

DWORD        bfOffBits;     从文件头到实际的位图数据的偏移字节数,前三个部分的长度之和。

} BITMAPFILEHEADER; 

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

DWORD      biSizeImage; 实际的位图数据占用字节, 如果biCompression为BI_RGB则该项可能为零

LONG        biXPelsPerMeter; 

LONG        biYPelsPerMeter; 

DWORD   biClrUsed;     指定实际用到的颜色数,如果值为零,则用到的颜色数为2biBitCount

DWORD      biClrImportant; 

} BITMAPINFOHEADER

typedef struct tagRGBQUAD { 

BYTE    rgbBlue; //该颜色的蓝色分量

BYTE    rgbGreen; //该颜色的绿色分量

BYTE    rgbRed; //该颜色的红色分量

BYTE    rgbReserved; //保留值

} RGBQUAD; 

注意事项:

1.调色板数目的计算

m_PaletteEntries=1<< biBitCount

if (biBitCount>8)

m_PaletteEntries=0

else    if (biClrUsed != 0)

PaletteEntries = biClrUsed;

2. MFC调色板的应用

if( m_nPaletteEntries != 0 ){

        // Allocate the LOGPALETTE structure.

        LOGPALETTE *pLogPal = (LOGPALETTE *) new char

                [sizeof(LOGPALETTE)+

                m_nPaletteEntries*sizeof(PALETTEENTRY)];

        if( pLogPal != NULL ){

            // Set the LOGPALETTE to version 0x300

            // and store the number of palette

            // entries.

            pLogPal->palVersion = 0x300;

            pLogPal->palNumEntries = m_nPaletteEntries;

            // Store the RGB values into each

            // PALETTEENTRY element.

            for( int i=0; i                pLogPal->palPalEntry[i].peRed =

                    m_pPalette[i].rgbRed;

                pLogPal->palPalEntry[i].peGreen =

                    m_pPalette[i].rgbGreen;

                pLogPal->palPalEntry[i].peBlue =

                    m_pPalette[i].rgbBlue;

                }

            // Create the CPalette object and

            // delete the LOGPALETTE memory.

            m_Palette.CreatePalette( pLogPal );

            delete [] pLogPal;

            }

        }

文档

我的图像的BMP文件信息

位图文件头BITMAPFILEHEADER位图信息头BITMAPINFOHEADER调色板Palette实际的位图数据ImageDatetypedefstructtagBITMAPFILEHEADER{WORD          bfType;指定文件类型,必须是0x424D,即字符串“BM”,DWORDbfSize;指定文件大小,包括这14个字节。WORD          bfReserved1;为保留字,不用考虑WORD          bfReserved2;为保留字,不用考虑DWO
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top