BITMAP,BITMAPINFOHEADER,PBITMAPINFO,HBITMAP,BITMAPFILEHEADER之间的关系

位图bmp——调色板、BITMAPFILEHEADER、BIYMAPINFOHEADER 位图:以像素为基础的点阵图像,RGB是位图常见的编码方式。 阅读详情
 
在Windows系统中,以BMP   为扩展名的文件都是DIB文件,保存于磁盘中的DIB文件由4部分所组成:位图文件头、位图信息头、颜色表项和位图图象数据。管理位图文件头、位图信息头、颜色表项的3个结构分别为   BITMAPFILEHEADER,BITMAPINFOHEADER,和RGBQUAD,其中RGBQUAD和BITMAPINFOHEADER结构又可以通过BITMAPINFO来组合。图1-1   展示了DIB文件的数据组织      
  ¬
BITMAPFILEHEADER结构的定义如下
  typedef     struct     tag   BITMAPFILEHEADER{
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
}BITMAPFILEHEADER;
其中bfType说明文件为一个位图文件,表示位图的ASCII码为BM,其16进制表示为0x4D42。bfSize   表示以字节为单位的文件大小。bfReserved1和bfReserved2一般不采用,其值均为0。BfOffBits表示从位图文件头开始到位图数据段的字节总数,即字节偏移量。
BITMAPINFOHEADER结构的定义如下:
typedef     struct     tag   BITMAPINFOHEADER{
                DWORD biSize;
                DWORD biWidth;
                DWORD biHeight;
                WORD       biPlanes;
                WORD       biBitCount;
    DWORD biCompression;
DWORD biSizeImage;
DWORD biXPelsPerMeter;
DWORD biYPelsPerMeter;
DWORD             biClrUsed;
DWORD biClrImportant;
}BITMAPINFODEADER;        
  其中,biSize   表示该结构的大小。biWidth   表示以像素为单位的位图宽度。biHeight表示相应的高度,biPlanes   表示目标设备的位平面数,置为1。biBitCount   表示位图每个像素的位数,可能为1、4、8、或24。iCompression   表示位图的被压缩类型。若位图未被压缩,则该值为0;若为1,则表示采用RLE(Run   Length   Encoded)8压缩;若位2,则表示采用RLE4压缩。biSizeImage   表示被压缩位图的字节数。biXPelsPerMeter   表示目标设备的水平分辨率,biYPelsPerMeter表示目标设备的垂直分辨率。biClrUsed   表示位图实际使用的颜色数。biClrImportant   指对于显示该位图比较重要的颜色索引的个数,若该值尾0,则表示所有的颜色都是重要的。
  RGBQUAD结构的定义如下:
    typedef     struct       tagRGBQUAD{
BYTE             rgbBLUE;
BYTE             rgbGREEN;
BYTE         rbgRED;
BYTE             rgbReserved;
}RGBQUAD;    
其中,rgbBLUE、   rgbGREEN、rbgRED分别表示蓝、绿、红分量;rgbReserved的值为0。
    BITMAPINFO结构把BITMAPINFOHEADER结构和一张颜色表结合在一起,其定义如下:
    tyepdef       struct       tagBITMAPINFO{  
BITMAPINFOHEADER         bmiHeader;
RGBQUAD                               bmiColors[1];
}BITMAPINFO;
事实上,只有1、4、8位位图才有颜色表项。24位位图没有颜色表项,位图头信息后紧跟位图数据。
VC屏幕截图源程序(支持对鼠标光标位置的保存) <br />#include <windows.h> //hBmp位图句柄 lpszFile保存的文件名称 iBitCount位图每像素的bit数 BOOL SaveBitmap(HBITMAP hBmp, LPCTSTR lpszFile, int iBitCount) { PBITMAPFILEHEADER pbf = NULL ; //位图文件头指针 PBITMAPINFO pbi = NULL ; //位图信息指针 PBITMAPINFOHEADER pbih = NULL 阅读详情

相关推荐

解决VMWare ESXi PCIe直通显卡导致的DevicePowerOn启动故障

本文详细解析了VMWare ESXi中PCIe直通显卡导致的DevicePowerOn启动故障,重点分析了MMIO空间不足的根本原因,并提供了完整的解决方案。通过修改.vmx文件中的关键参数,如pciPassthru.64bitMMIOSizeGB,可以有效解决显存分配问题。文章还涵盖了硬件兼容性检查、性能调优技巧及大规模部署的实战案例,帮助用户彻底解决显卡直通难题。

weixin_42537919的博客 574

BITMAP,BITMAPINFOHEADER,PBITMAPINFO,HBITMAP,BITMAPFILEHEADER

BITMAP是个结构,记录了已调入内存的BMP图象的宽高,颜色等信息以及图象数据,与系统当前得显示模式,色深有关。 BITMAPINFOHEADER是记录BMP图象本身的宽高,颜色等信息,但不包含图象数据,且与系统显示模式无关。 PBITMAPINFO是BITMAPINFO的指针,BITMAPINFO包含BITMAPINFOHEADER和图象数据。 HBITMAP是图象句柄,标识一幅已调入内

Sayesan的专栏 1958

Diffusion Model原理详解

Diffusion Model(扩散模型 )对标的是生成对抗网络(GAN),本文将用通俗的语言和公式为大家介绍Diffusion Model,并且结合公式为大家梳理Diffusion Model的代码。

weixin_42620109的博客 6098

BMP文件结构

BMP文件结构   BMP文件存储结构的格式可以在Windows中的WINGDI.h文件中找到定义。 BMP文件总体上由4部分组成,分别是位图文件头、位图信息头、调色板和图像数据,如表5-1所示。 表5-1 BMP文件的组成结构 位图文件头(bitmap-file header) 位图信息头(bitmap-information

God 的专栏 3278

Win10本地账户密码遗忘?巧用指纹/PIN快速重置(家庭版/专业版通用指南)

本文提供了一份详细的Win10本地账户密码遗忘自救指南,适用于家庭版和专业版用户。核心方法是利用已登录的指纹或PIN码权限,通过创建新的管理员账户或使用系统工具,安全重置遗忘的本地账户密码,无需第三方工具或重装系统,有效保护个人数据。

e6f7g8h9i的博客 576

Error: dependent ‘..\..\..\..\Qt\5.15.2\msvc2019\include\QtWidgets\QMainWindow‘ does not exist.

核心问题:修改 Build 目录为源码子目录后,MSVC 编译报错,本质是变量设置异常,导致 qmake 生成多余回溯路径;临时解决:在 .pro 文件添加;最优解决:将上述配置写入 Qt 的 msvc 对应 qmake.conf 全局文件,一劳永逸;禁止 qmake 计算路径时向上回溯,避免生成异常路径。

mumufan05的专栏 878

位图BITMAP结构

数字媒体对于图像的处理肯定离不开对于位图的有关处理,首先要弄清楚位图的结构才能进行下面的工作。位图(Bitmap)图像又称点阵图或光栅图,它使用我们称为像素(象素,Pixel)的一格一格的小点来描述图像. 常见的图像文件格式有:BMP、JPG(JPE,JPEG)、GIF等等。 BMP文件结构 BMP文件由4部分组成: 1.位图文件头(bitmap-file header 2.位图信息...

iteye_8029的博客 653

电商数据分析18——电商广告投放的数据分析与优化

在当今的电商行业中,广告投放是提高品牌知名度、吸引潜在客户和增加销售额的关键策略之一。随着市场竞争的加剧,仅仅依靠直观判断和传统方法已经无法满足广告投放的需求。数据分析在这里扮演了至关重要的角色,它可以帮助企业更准确地定位目标受众,评估广告效果,优化广告内容,从而提高广告效率和投资回报率(ROI)。

theskylife的博客 5702

【C/C++】BITMAP格式分析

BITMAP文件大体上分成四个部分,如下表所示。 文件部分 长度(字节) 位图文件头 Bitmap File Header 14 位图信息数据头 Bitmap Info Header 40 调色板 Palette 4*n (n≥0) 位图数据 Image Data 不定长 1、位图文件头 Bitmap File Header typed...

sunriver2000的专栏 1794

LabVIEW内存泄漏诊断与优化:从报错到高效运行

本文深入探讨LabVIEW内存泄漏的诊断与优化方法,从理解内存泄漏本质到使用专业工具链进行问题定位,再到高频场景的解决方案和高级优化策略。通过实战案例展示如何解决工业数据采集系统中的内存不足问题,帮助开发者提升LabVIEW应用的稳定性和效率。

moon9的博客 197

【法如faro】三维激光软件Scene2023数据处理(自动配准并转换坐标)流程

法如faro Scene2023数据处理(自动配准并转换坐标)的主要流程为:新建项目、导入数据、处理、自动注册、坐标系转换、模型导出立和面模型导出等。

智慧空间实验室 2382

HBITMAP位图句柄转换图像

HBITMAP位图句柄转换图像//位图句柄转换图像void WriteBMPFile(HBITMAP hBitMap, LPTSTR filename, HDC hDC) {     BITMAP bmp;      PBITMAPINFO pbmi;      WORD cClrBits;      HANDLE hf; // file handle      B

深之JohnChen的专栏 5224

[AI] 嵌入模型选择:bge / text-embedding-3 / Jina Embeddings 对比与选型指南

摘要: 本文对比了BGE-M3、OpenAI和Jina三种主流嵌入模型在语言覆盖、性能、延迟、维度和成本等维度的差异。BGE-M3适合中文场景,本地部署成本低;OpenAI API多语能力强但依赖网络;Jina在多语表现突出但需关注商用许可。测试显示BGE-M3本地延迟3-6ms,OpenAI API延迟200-600ms。选型建议:隐私场景选BGE本地部署,多语低维护选OpenAI,高精度选Jina。部署时需注意批处理优化、向量库压缩和商用许可等问题,建议建立评测指标并监控关键指标。

每日出拳老爷子的博客 428

bitmap分析

vc 位图操作 BITMAPINFO 赋值BMP 文件结构分成以下几个部分:1 BITMAP FILEHEADER (BMP 文件头)2 BITMAP INFOHEADER (BMP 文件信息头)3 RGBQUAD (BMP 文件调色板)4 BITMAP DATA (BMP 文件数据)Windows 中位图有两种格式:设备相关位图 Device Depend Bitmap DDB设备无关位

willpower_lsc的专栏 1176

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

vc 位图操作 BITMAPINFO 赋值

<br />vc 位图操作 BITMAPINFO 赋值<br />BMP 文件结构分成以下几个部分:<br />1 BITMAP FILEHEADER (BMP 文件头)<br />2 BITMAP INFOHEADER (BMP 文件信息头)<br />3 RGBQUAD (BMP 文件调色板)<br />4 BITMAP DATA (BMP 文件数据)<br />Windows 中位图有两种格式:<br />设备相关位图 Device Depend Bitmap DDB<br />设备无关位图 Devi

老飞的博客 1348

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

将内存位图写入到BMP文件中

 // 从将内存位图句柄(HBITMAP)写入到BMP文件中// 返回 非零表示成功写入// 参数 LPCTSTR 文件名// 参数 HBITMAP 内存位图句柄BOOL CreateBMPFileFromBitmapObject(LPCTSTR szFileName, HBITMAP hBitmap){ BITMAPFILEHEADER hdr;        

ding_net的专栏 1101

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

通过DC保存为bmp图片

//HBITMAP位图句柄转换图像 void WriteBMPFile(HBITMAP hBitMap, LPTSTR filename, HDC hDC) { BITMAP bmp; PBITMAPINFO pbmi; WORD cClrBits; HANDLE hf; // file handle BITMAPFILEHEADER hdr; // bitmap file-header PBITMAPINFOHEADER pbih;

1527

保存bmp图片

PBITMAPINFO CreateBitmapInfoStruct(HBITMAP hBmp) { BITMAP bmp; PBITMAPINFO pbmi = NULL; WORD cClrBits; // Retrieve the bitmap color format, width, and height. if (!GetObject(hBmp, sizeof(BITM...

hkchgc的博客 789

webbrowser截图

PBITMAPINFO CreateBitmapInfoStruct(HWND hwnd, HBITMAP hBmp) { BITMAP bmp; PBITMAPINFO pbmi = NULL; WORD cClrBits; // Retrieve the bitmap color format, width, and height. if (!GetObject(hBmp,

sx5486510的专栏 822

用atl写的缩略图组件

STDMETHODIMP Cgetimage::LoadPicture(VARIANT vFilename){ // TODO: Add your implementation code here    CComVariant v_1( vFilename ); v_1.ChangeType( VT_BSTR ); CComBSTR bstr( v_1.bstrVal ); hBmp=(HBI

兔子专栏 2785

抓屏示例

以下示例程序功能为:抓取整个屏幕并保存为D:\\1234.bmp #include #include using namespace std; // // 抓取屏幕图像存入DDB位图 // HBITMAP CaptureScreenToDDB() { HDC hdcScreen = NULL; HDC hdcMem = NULL; HBITMAP hBitmap = NULL;

Hisin Wang的专栏 1560
上一篇: 使用directsound播放pcm流文件.txt
下一篇: windows预定义类型
duloveding
博客等级 码龄17年 38粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值