精华内容
下载资源
问答
  • 创建一个位图按钮控件

    千次阅读 2010-08-19 11:18:00
    创建一个位图按钮控件时,设置BS_OWNERDRAW则指明按钮是自定义的(用户自己绘制的)。 这样,Windows就会为该按钮发送WM_MEASUREITEM和WM_DRAWITEM消息,由框架处理这些消 息并维护按钮的外观。...

    在创建一个位图按钮控件时,设置BS_OWNERDRAW则指明按钮是自定义的(用户自己绘制的)。
    这样,Windows就会为该按钮发送WM_MEASUREITEM和WM_DRAWITEM消息,由框架处理这些消
    息并维护按钮的外观。
    在窗口的客户区创建一个位图按钮的步骤如下: 1. 为按钮创建1到4个位图。 
    2. 构造CBitmapButton对象。 
    3. 调用Create函数创建Windows按钮控件,并把它加到CBitmapButton对象上。 
    4. 调用成员函数LoadBitmaps加载位图资源。 
    在对话框控件中包含位图按钮的步骤如下: 1. 为按钮创建1到4个位图。 
    2. 创建一个对话框模板,其中有一个自定义的按钮放在需要位图按钮的位置。模板中按钮的大小无关紧要。 
    3. 把按钮的标题设置为“MYIMAGE”一类的字符串,并为按钮定义一个类似于IDC_MYIMAGE的代号。 
    4. 在应用的资源脚本中,分别为每个给该按钮创建的图像一个ID,ID的值为在步骤3中的标题后加上
    如下的一个字母——U、D、F或X,分别代表正常、按下、获得焦点和禁止存取状态下的按钮。例如
    ,标题设为“MYIMAGE”时,ID就应该是字符串("MYIMAGEU"、"MYIMAGED"、"MYIMAGEF"和"MYIMAGEX")。
    位图的ID必须用引号括起来,否则资源编辑器就会为资源赋上一个整数值,MFC在加载图像时就会失败。 
    5. 在应用的对话框类(从类CDialog继承而来)中加上一个CBitmapButton成员对象。 
    6. 在CDialog对象的OnInitDialog例程中调用CBitmapButton对象的AutoLoad函数,参数是按钮的
    ID和CDialog对象的this指针。 
    如果想处理Windows的通知消息,如位图按钮控件发给它的父对象(通常是从CDialog继承来的)
    的BN_CLICKED消息,就要在从CDialog继承来的对象中加入消息映射入口以及处理每个消息的成员函数。
    CBitmapButton对象发出的通知和CButton对象发出的通知一样。
    类CToolBar对位图对象的实现有些不同。
    要了解有关CBitmapButton的更详细信息,请参阅联机文档“Visual C++程序员指南”的“控件主题”部分。
    #include <afxext.h>

    CBitmapButton类的成员

    构造函数 CBitmapButton 构造一个CBitmapButton对象 
    LoadBitmaps 从应用的资源文件中加载一个或多个命名的位图初始化对象,并把位图加到对象上 
    AutoLoad 把对话框中的一个按钮与一个CBitmapButton对象联系上,加载位图并调整按钮的大小以放下位图 

    操作 SizeToContent 调整按钮的大小以放下整个位图

    展开全文
  • 位图单位,16,256位较合适 新建资源模板 右键选择插入 引入Bitmap文件 如果程序所在文件夹有符合要求的位图,就可以放入

    位图单位,16,256位较合适
    在这里插入图片描述
    新建资源模板
    在这里插入图片描述
    右键选择插入
    在这里插入图片描述
    引入Bitmap文件
    在这里插入图片描述
    如果程序所在文件夹有符合要求的位图,就可以放入
    在这里插入图片描述

    展开全文
  • 位图文件格式

    千次阅读 2011-12-14 00:30:45
    位图文件结构 位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据 1、位图文件头。位图文件头主要用于识别位图文件。以下是位图文件头结构的定义: typedef struct tagBITMAPFILEHEADER { // ...

    一、位图文件结构

    位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据

    1、位图文件头。位图文件头主要用于识别位图文件。以下是位图文件头结构的定义:

    typedef struct tagBITMAPFILEHEADER { // bmfh 
        WORD    bfType; 
        DWORD   bfSize; 
        WORD    bfReserved1; 
        WORD    bfReserved2; 
        DWORD   bfOffBits; 
    } BITMAPFILEHEADER;
    其中的bfType值应该是“BM”(0x4d42),标志该文件是位图文件。bfSize的值是位图文件的大小。
    2、位图信息中所记录的值用于分配内存,设置调色板信息,读取像素值等。
    以下是位图信息结构的定义:

    typedef struct tagBITMAPINFO {
        BITMAPINFOHEADER    bmiHeader;
        RGBQUAD             bmiColors[1];
    } BITMAPINFO;

    可见位图信息也是由两部分组成的:位图信息头 + 颜色表



    2.1位图信息头。位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。以下是位图信息头结构的定义:
    typedef struct tagBITMAPINFOHEADER{ // bmih 
        DWORD  biSize; 
        LONG   biWidth; 
        LONG   biHeight; 
        WORD   biPlanes; 
        WORD   biBitCount 
        DWORD  biCompression; 
        DWORD  biSizeImage; 
        LONG   biXPelsPerMeter; 
        LONG   biYPelsPerMeter; 
        DWORD  biClrUsed; 
        DWORD  biClrImportant; 
    } BITMAPINFOHEADER; 

    下表是对结构体当中各个成员的说明: 
    结构成员 说 明
    biSize 结构BITMAPINFOHEADER的字节数,即sizeof(BITMAPINFOHEADER)*
    biWidth 以像素为单位的图像宽度*
    biHeight 以像素为单位的图像长度*
    biplanes 目标设备的位平面数
    biBitCount 每个像素的位数*(1)
    biCompression 图像的压缩格式(这个值几乎总是为0)
    biSizeImage 以字节为单位的图像数据的大小(对BI_RGB压缩方式而言)
    biXPelsPermeter 水平方向上的每米的像素个数
    biYpelsPerMeter 垂直方向上的每米的像素个数
    biClrused 调色板中实际使用的颜色数(2)
    biClrImportant 现实位图时必须的颜色数(3)

    说明:*是需要加以注意的部分,因为它们是我们在进行位图操作时经常参考的变量
    (1)对于每个像素的字节数,分别有一下意义:
    0,用在JPEG格式中
    1,单色图,调色板中含有两种颜色,也就是我们通常说的黑白图片
    4,16色图
    8,256色图,通常说的灰度图
    16,64K图,一般没有调色板,图像数据中每两个字节表示一个像素,5个或6个位表示一个RGB分量
    24,16M真彩色图,一般没有调色板,图像数据中每3个字节表示一个像素,每个字节表示一个RGB分量
    32,4G真彩色,一般没有调色板,每4个字节表示一个像素,相对24位真彩图而言,加入了一个透明度,即RGBA模式

    (2)这个值通常为0,表示使用biBitCount确定的全部颜色,例外是使用的颜色树木小于制定的颜色深度的颜色数目的最大值。

    (3)这个值通常为0,表示所有的颜色都是必需的

    2.2颜色表。颜色表一般是针对16位一下的图像而设置的,对于16位和16位以上的图像,由于其位图像素数据中直接对对应像素的RGB(A)颜色进行描述,因而省却了调色板。而对于16位一下的图像,由于其位图像素数据中记录的只是调色板索引值,因而需要根据这个索引到调色板去取得相应的RGB(A)颜色。颜色表的作用就是创建调色板。

    下图是带调色板和不带调色板的位图的简单示意图

    图1 带调色板和不带调色板位图之间的区别

    颜色表是由颜色表项组成的,颜色表项结构的定义如下:

    typedef struct tagRGBQUAD { // rgbq 
        BYTE    rgbBlue; 
        BYTE    rgbGreen; 
        BYTE    rgbRed; 
        BYTE    rgbReserved; 
    } RGBQUAD;

    
    其中需要注意的问题是,RGBQUAD结构中的颜色顺序是BGR,而不是平常的RGB。
    

    3、位图数据。最后,在位图文件头、位图信息头、位图颜色表之后,便是位图的主体部分:位图数据。根据不同的位图,位图数据所占据的字节数也是不同的,比如,对于8位位图,每个字节代表了一个像素,对于16位位图,每两个字节代表了一个像素,对于24位位图,每三个字节代表了一个像素,对于32位位图,每四个字节代表了一个像素。

    展开全文
  • 位图文件结构

    千次阅读 2012-11-27 20:33:52
    位图文件结构 1.位图文件头 2.位图信息 2.1位图信息头 2.2 颜色表 2.位图数据 二、位图文件读写操作 1.类的声明 2.位图的读取 3.位图读取过程中的调色板的创建和调用 4.位图的显示 5.位图的存储 6....

    转自:http://www.vckbase.com/index.php/wv/475

    一、位图文件结构

    1.位图文件头

    2.位图信息

    2.1位图信息头

    2.2 颜色表

    2.位图数据

    二、位图文件读写操作

    1.类的声明

    2.位图的读取

    3.位图读取过程中的调色板的创建和调用

    4.位图的显示

    5.位图的存储

    6.新位图的创建

    7.其它问题

    三、CFG_DIB的使用

    关于位图文件操作的资料很多。为了方便开发人员的工作,写下本文,介绍了位图文件结构,在此基础之上设计了通用类CFG_DIB,用于进行位图文件的读写操作。

    一、位图文件结构

    位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据

    1、位图文件头。位图文件头主要用于识别位图文件。以下是位图文件头结构的定义:

    1.typedef struct tagBITMAPFILEHEADER { // bmfh
    2.WORD    bfType;
    3.DWORD   bfSize;
    4.WORD    bfReserved1;
    5.WORD    bfReserved2;
    6.DWORD   bfOffBits;
    7.} BITMAPFILEHEADER;

    其中的bfType值应该是“BM”(0x4d42),标志该文件是位图文件。bfSize的值是位图文件的大小。

    2、位图信息中所记录的值用于分配内存,设置调色板信息,读取像素值等。

    以下是位图信息结构的定义:

    1.typedef struct tagBITMAPINFO {
    2.BITMAPINFOHEADER    bmiHeader;
    3.RGBQUAD             bmiColors[1];
    4.} BITMAPINFO;

    可见位图信息也是由两部分组成的:位图信息头 + 颜色表

    2.1位图信息头。位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。以下是位图信息头结构的定义:

    01.typedef struct tagBITMAPINFOHEADER{ // bmih
    02.DWORD  biSize;
    03.LONG   biWidth;
    04.LONG   biHeight;
    05.WORD   biPlanes;
    06.WORD   biBitCount
    07.DWORD  biCompression;
    08.DWORD  biSizeImage;
    09.LONG   biXPelsPerMeter;
    10.LONG   biYPelsPerMeter;
    11.DWORD  biClrUsed;
    12.DWORD  biClrImportant;
    13.} BITMAPINFOHEADER;

    下表是对结构体当中各个成员的说明:

    结构成员 说 明
    biSize 结构BITMAPINFOHEADER的字节数,即sizeof(BITMAPINFOHEADER)*
    biWidth 以像素为单位的图像宽度*
    biHeight 以像素为单位的图像长度*
    biplanes 目标设备的位平面数
    biBitCount 每个像素的位数*(1)
    biCompression 图像的压缩格式(这个值几乎总是为0)
    biSizeImage 以字节为单位的图像数据的大小(对BI_RGB压缩方式而言)
    biXPelsPermeter 水平方向上的每米的像素个数
    biYpelsPerMeter 垂直方向上的每米的像素个数
    biClrused 调色板中实际使用的颜色数(2)
    biClrImportant 现实位图时必须的颜色数(3)

    说明:*是需要加以注意的部分,因为它们是我们在进行位图操作时经常参考的变量

    (1)对于每个像素的字节数,分别有一下意义:

    0,用在JPEG格式中

    1,单色图,调色板中含有两种颜色,也就是我们通常说的黑白图片

    4,16色图

    8,256色图,通常说的灰度图

    16,64K图,一般没有调色板,图像数据中每两个字节表示一个像素,5个或6个位表示一个RGB分量

    24,16M真彩色图,一般没有调色板,图像数据中每3个字节表示一个像素,每个字节表示一个RGB分量

    32,4G真彩色,一般没有调色板,每4个字节表示一个像素,相对24位真彩图而言,加入了一个透明度,即RGBA模式

    (2)这个值通常为0,表示使用biBitCount确定的全部颜色,例外是使用的颜色树木小于制定的颜色深度的颜色数目的最大值。

    (3)这个值通常为0,表示所有的颜色都是必需的

    2.2颜色表。颜色表一般是针对16位一下的图像而设置的,对于16位和16位以上的图像,由于其位图像素数据中直接对对应像素的RGB(A)颜色进行描述,因而省却了调色板。而对于16位一下的图像,由于其位图像素数据中记录的只是调色板索引值,因而需要根据这个索引到调色板去取得相应的RGB(A)颜色。颜色表的作用就是创建调色板

    下图是带调色板和不带调色板的位图的简单示意图

    图1 带调色板和不带调色板位图之间的区别

    颜色表是由颜色表项组成的,颜色表项结构的定义如下:

    1.typedef struct tagRGBQUAD { // rgbq
    2.BYTE    rgbBlue;
    3.BYTE    rgbGreen;
    4.BYTE    rgbRed;
    5.BYTE    rgbReserved;
    6.} RGBQUAD;

    其中需要注意的问题是,RGBQUAD结构中的颜色顺序是BGR,而不是平常的RGB。

    3、位图数据。最后,在位图文件头、位图信息头、位图颜色表之后,便是位图的主体部分:位图数据。根据不同的位图,位图数据所占据的字节数也是不同的,比如,对于8位位图,每个字节代表了一个像素,对于16位位图,每两个字节代表了一个像素,对于24位位图,每三个字节代表了一个像素,对于32位位图,每四个字节代表了一个像素。 

    二、位图文件读写操作

    认识了位图文件的结构以后,对特定位图文件进行读写操作就显得简单了。本文附带的源代码中包含了一个能够方便进行位图读写操作的C++类。以下给出该类的使用参考,对于实现代码中的关键部分做出了讲解。

    1、类的声明

    01.class CFG_DIB : public CObject 
    02.{
    03.public:
    04.//默认构造函数
    05.CFG_DIB();
    06.//构造函数,根据图象宽和高,以及记录每个象素所需字节数来初始化
    07.CFG_DIB(int width, int height, int nBitCounts);
    08.virtual ~CFG_DIB();
    09. 
    10.public:
    11.HBITMAP m_hBitmap;
    12.LPBYTE m_lpDIBits;                  //DIB位的起始位置
    13.LPBITMAPINFOHEADER m_lpBMPHdr;      //BITMAPINFOHEADER信息
    14.LPVOID m_lpvColorTable;             //颜色表信息
    15.HPALETTE m_hPalette;                //条调色板
    16. 
    17.private:
    18.DWORD m_dwImageSize;                //非BITMAPINFOHEADER或BITMAPFILEHEADER的位
    19.int m_nColorEntries;                //颜色表项的个数
    20. 
    21.//显示参数
    22.public:
    23.CPoint m_Dest;                      //目的矩形域的左上角坐标
    24.CSize m_DestSize;                   //显示矩形的宽度和高度
    25.CPoint m_Src;                       //原矩形左下角坐标
    26.CSize m_SrcSize;                    //原矩形宽度和高度
    27. 
    28.public:
    29.void InitDestroy();                         //初始化变量
    30.void ComputePaletteSize(int nBitCounts);    //计算调色板大小
    31.void ComputeImage();                        //计算图象大小
    32. 
    33.//从BMP文件中读入DIB信息
    34.BOOL ReadFile(CFile* pFile);
    35.//从BMP文件中读入DIB信息,与ReadFile不同的是使用CreateSection创建位图位
    36.BOOL ReadSection(CFile* pFile, CDC* pDC = NULL);
    37.//将DIB写入文件,保存成BMP图片格式
    38.BOOL WriteFile(CFile* pFile);
    39.//创建新的位图文件,根据参数width,height,nBitCounts分配内存空间
    40.BOOL NewFile(int width, int height, int nBitCounts);
    41.//关闭位图文件
    42.BOOL CloseFile();
    43. 
    44.//显示位图
    45.BOOL Display(CDC* pDC);
    46. 
    47.HBITMAP CreateBitmap(CDC* pDC);             //用DIB创建DDB
    48.HBITMAP CreateSection(CDC* pDC = NULL);     //创建位图位数据,即象素数据
    49.//如果DIB没有颜色表,可以用逻辑调色板
    50.BOOL SetLogPalette(CDC* pDC);
    51.//如果DIB有颜色表,可以创建系统调色板
    52.BOOL SetWinPalette();
    53.//把DIB对象的逻辑调色板选进设备环境里,然后实现调色板
    54.UINT UseLogPalette(CDC* pDC);
    55. 
    56.//得到BitmapInfoHeader的大小,包含颜色表数据
    57.int GetHeaderSize()
    58.{
    59.return sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorEntries;
    60.}
    61.//得到图像的高度
    62.int GetHeight()
    63.{
    64.if(m_lpBMPHdr == NULL) return 0;
    65.return m_lpBMPHdr->biHeight;
    66.}
    67.//得到图像的宽度
    68.int GetWidth()
    69.{
    70.if(m_lpBMPHdr == NULL) return 0;
    71.return m_lpBMPHdr->biWidth;
    72.}
    73.//得到图像的大小
    74.int GetImageSize()
    75.{
    76.return m_dwImageSize;
    77.}
    78.long GetLineBit();      //得到一行的象素数
    79.};

    2、位图的读取。

    CFG_DIB提供了两个从位图文件读取位图数据的方法:ReadFile和ReadSection,二者不同之处,前者使用动态分配内存的方法初始化存储位位图数据的指针,后者则使用API函数,根据位图信息初始化存储位图数据的指针。

    方法1

    1.m_lpDIBits = (LPBYTEnew char[m_dwImageSize];

    方法2

    1.m_hBitmap = ::CreateDIBSection(pDC->GetSafeHdc(),
    2.(LPBITMAPINFO) m_lpBMPHdr, DIB_RGB_COLORS,
    3.(LPVOID*) &m_lpDIBits, NULL, 0);

    3、位图读取过程中的调色板的创建和调用。

    关于调色板的详细情况,本文不作详细介绍,只是对读取位图的过程中需要调用的对调色板进行操作的相关函数进行说明。

    读取文件的过程中,计算出调色板大小,然后调用创建调色板函数:

    1.ComputePaletteSize(m_lpBMPHdr->biBitCount);
    2.SetWinPalette();

    在显示位图之前,设置调色板:

    1.if(m_hPalette != NULL) {
    2.::SelectPalette(pDC->GetSafeHdc(), m_hPalette, TRUE);
    3.}

    4、位图的显示。

    位图的显示还是调用Windows的API函数来进行,需要传递的参数包括当前位图信息头,位图数据等:

    1.::StretchDIBits(pDC->GetSafeHdc(), m_Dest.x, m_Dest.y,
    2.m_DestSize.cx, m_DestSize.cy,
    3.m_Src.x, m_Src.y,
    4.m_SrcSize.cx, m_SrcSize.cy,
    5.m_lpDIBits, (LPBITMAPINFO) m_lpBMPHdr,
    6.DIB_RGB_COLORS, SRCCOPY);

    其中的m_Dest,m_DestSize,m_Src,m_SrcSize分别代表了图像在当前设备上显示的左上角坐标和范围以及需要显示的源图像的左下角坐标和范围。此处需要说明的是,位图数据的字节数组是从图像的最下面一行开始逐行想上存储的,所以用户在选取源位图的现实范围的时候需要特别注意!

    m_Dest,m_DestSize,m_Src,m_SrcSize需要在现实之前设置好。

    5、位图的存储。位图的存储用WriteFile实现。

    6、新位图的创建。新位图的创建由NewFile实现。需要的参数是位图的宽度、高度、以及位图像素占用的位数。

    7、其它问题。存取位图数据的字节数组有个问题需要引起开发人员的注意:字节数组中每个扫描行的字节数必需是4的倍数,如果不足要用0补齐。

    以下是处理的办法:

    1.DWORD dwBytes = ((DWORD) m_lpBMPHdr->biWidth * m_lpBMPHdr->biBitCount) / 32;
    2.if(((DWORD) m_lpBMPHdr->biWidth * m_lpBMPHdr->biBitCount) % 32) {
    3.dwBytes++;
    4.}
    5.dwBytes *= 4;
    6.m_dwImageSize = dwBytes * m_lpBMPHdr->biHeight;

    这段代码按照要求算出了用于记录图像数据的字节数组的大小。

    三、CFG_DIB的使用

    以下是CFG_DIB的使用示例代码。

    01.#include "fg_dib.h"
    02. 
    03.CFG_DIB m_fgdib;
    04. 
    05.//new file
    06.m_fgdib.NewFile(width, height, nbitnum);
    07. 
    08.//open file
    09.CFile* pf;
    10.pf = new CFile;
    11.pf->Open(sFileName, CFile::modeRead);
    12.m_fgdib.ReadFile(pf);
    13.pf->Close();
    14.delete pf;
    15. 
    16.//draw BMP
    17.m_fgdib.m_Dest.x = 0;
    18.m_fgdib.m_Dest.y = 0;
    19.m_fgdib.m_DestSize.cx = m_fgdib.GetWidth();
    20.m_fgdib.m_DestSize.cy = m_fgdib.GetHeight();
    21.m_fgdib.m_Src.x = 0;
    22.m_fgdib.m_Src.y = 0;
    23.m_fgdib.m_SrcSize.cx = m_fgdib.GetWidth();
    24.m_fgdib.m_SrcSize.cy = m_fgdib.GetHeight();
    25.CDC* pDC = GetDC();
    26.m_fgdib.Display(pDC);
    27. 
    28.//close BMP
    29.m_fgdib.CloseFile();

    如果您在阅读文章和使用代码过程中遇到的问题,请与作者联系:

    吉林省长春市西民主大街6号地球探测科学与技术学院2001级硕士研究生(130026)

    欢迎访问作者的主页:Forevergis.6to23.com

    展开全文
  • 位图文件大概可以分为四个部分:bmp文件头(BITMAPFILEHEADER),位图信息头...我在用C语言保存一个位图文件的时候,发现保存的文件是错误的,无法正常打开,最后查找发现竟然是因为结构体的内存对齐造成的。
  • 位图文件分析

    千次阅读 2014-04-01 00:21:27
    位图是Windows系统中种最简单也是最基本的图像格式,了解位图文件结构有助于对位图进行各种操作。 关于位图的存储和显示 普通的显示器屏幕是由许许多多点构成的,我们称之为象素。显示时采用扫描的方法:电子枪...
  • 位图文件读写综述

    千次阅读 2013-11-23 15:37:54
    位图文件结构 1.位图文件头 2.位图信息 2.1位图信息头 2.2 颜色表 2.位图数据 二、位图文件读写操作 1.类的声明 2.位图的读取 3.位图读取过程中的调色板的创建和调用 4.位图的显示 5.位图的存储 6....
  • BMP位图文件的4组成部分

    千次阅读 2016-06-22 23:30:13
    bmp文件大体上分成四个部分。 位图文件头BITMAPFILEHEADER 、 ...第1部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,该结构的长度是固定的,为14个字节。其定义如下: typedef struct tagBITMAPFILEHEADER {
  • 位图文件的读写

    2008-11-19 21:51:00
    位图文件结构 位图文件头 位图信息2.1 位图信息头2.2 颜色表 位图数据 二、位图文件读写操作类的声明 位图的读取 位图读取过程中的调色板的创建和调用 位图的显示 位图的存储 新位图的创建 其它问题 三、CFG_DIB...
  • 方式: 注意开始的时候要在对话框上设置Picture控件 ,ID=IDC_PHOTO,定义HBITMAP m_hPhotoBitmap为该对话框的数据成员void CTestDlg::OnPaint(){ CPaintDC dc(this); CStatic *pStaic = (CStatic*)GetDlgItem...
  • 解读位图文件

    千次阅读 2007-07-30 12:37:00
    解读位图文件告诉您:24位、8位、4位等格式位图的区别及转换 位图文件是最基础的图形文件,是以像素为单位进行图像信息记录的,有24位、8位、4位和1位等几种不同的... 文件的组成一般包含以下几部分: 位图文件头 
  • 根据位图文件头,求BMP文件大小

    千次阅读 2020-06-10 13:35:07
    输入占行,以十六进制的形式输入BMP文件的位图文件头。 输出 输出二行: 第1行是用十六进制表示的BMP文件大小 ,加上前导0x(x是小写); 第2行是用十进制表示的BMP文件大小。 样例输入 Copy 42 4D 36 C0 00 00 00 ...
  • 位图文件存储空间的计算

    千次阅读 2018-09-21 15:51:43
    位图图像: 位图,又叫光栅图,是由许多像小方块一样的“像素”组成... 分析:一个像素可以存放黑或者白图像(2色或者1位色),所以每个像素就是一个比特,即1位。因此,可以算出这幅图像的容量为:800*600/8=60000(B...
  • BMP位图文件加密

    千次阅读 2011-08-05 17:34:31
    24位BMP位图文件  要利用BMP位图进行加密首先需要了解BMP文件的存放格式...第部分是BMP文件头:前2字节是“BM”,是用于识别BMP文件的标志;第3、4、5、6 字节存放的是位图文件的大小,以字节为单位;第7、8、9、
  • 位图文件(.bmp文件)结构

    千次阅读 2013-07-20 22:52:54
    即用RGB方式来保存像素颜色,每像素三字节,每字节的值表示种颜色值,范围是0-255,共能表示16777216种颜色。 位图文件分为四部分: 1.位图文件头 占14字节 2.位图信息头 占40字节 3.颜色表 24位真彩色图
  • Android加载绘制游戏位图文件AssetManager 游戏素材加载步骤如下: 1、创建AssetManager对象 ...2、创建位图文件输入流 InputStream istream=assets.open("picture.png"); 3、设置位图解码的色彩浓度 Bitma
  • C语言读写bmp位图文件

    千次阅读 2014-12-20 14:52:56
    bitmap格式图片是未经压缩的,一般24bit位图(即一个像素点以24个二进制位表示)。 分别用8个二进制位表示R/G/B三种颜色,这样一共可以表示256*256*256=16777216种颜色。 8bit的位图则为黑白图像,32bit位图除16777216...
  • 位图文件的读取显示

    千次阅读 2004-12-24 17:49:00
    位图文件结构位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据1、位图文件头。位图文件头主要用于识别位图文件。以下是位图文件头结构的定义: typedef struct tagBITMAPFILEHEADER { // bmfh WORD ...
  • 绘制BMP位图文件

    千次阅读 2004-08-30 01:15:00
    绘制BMP位图文件 BMP文件由三部分组成:有关文件信息的BITMAPFILEHEADER,有关位图信息的BITMAPINFO以及位图的图象数据。其中BITMAPINFO又由位图信息头BITMAPINFOHEADER和颜色表组成,颜色表不是必须的。几结构的...
  • 位图(bmp) 1.位图简介  BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不...
  • 位图文件的存储格式

    千次阅读 2011-12-01 18:04:33
    摘 要:本文简单介绍了位图文件的两种存储格式,并且在VC++6.0下实现了读取位图文件中的数据,用SetPixel()函数在窗口中重现图像,最后在程序中实现了种存储格式到另种存储格式的转换。 关键字:BMP、灰度...
  • 网上关于设备上下文获取位图句柄,然后操作位图句柄保存位图文件的帖子不少,不过通过已知的bitmapinfo(address of bitmap data)和bitmap的数据信息lpBits(address of bitmap bits)来获取位图文件的例子几乎没有...
  • 读取BMP文件中关于位图属性的信息,将一个数值矩阵封装为一个BMP格式的文件。   报告: i.首先我们理解一下BMP文件的格式或者说这样一个文件中有什么东西。BMP文件的格式是二进制的,也就是说我们可以直接把它们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 102,827
精华内容 41,130
关键字:

如何创建一个位图文件