呵呵,贴在这里记录一下。
- #include<stdio.h>
- #include<string.h>
- #include<sys/types.h>
- #include <iostream>
- #pragma pack(2)
- using namespace std;
- //下面两个结构是位图的结构
- typedef struct BITMAPFILEHEADER
- {
- u_int16_t bfType;
- u_int32_t bfSize;
- u_int16_t bfReserved1;
- u_int16_t bfReserved2;
- u_int32_t bfOffBits;
- }BITMAPFILEHEADER;
- typedef struct BITMAPINFOHEADER
- {
- u_int32_t biSize;
- u_int32_t biWidth;
- u_int32_t biHeight;
- u_int16_t biPlanes;
- u_int16_t biBitCount;
- u_int32_t biCompression;
- u_int32_t biSizeImage;
- u_int32_t biXPelsPerMeter;
- u_int32_t biYPelsPerMeter;
- u_int32_t biClrUsed;
- u_int32_t biClrImportant;
- }BITMAPINFODEADER;
- void showBmpHead(BITMAPFILEHEADER &pBmpHead){
- cout<<"位图文件头:"<<endl;
- cout<<"文件头类型:"<<pBmpHead.bfType<<endl;
- cout<<"文件大小:"<<pBmpHead.bfSize<<endl;
- cout<<"保留字_1:"<<pBmpHead.bfReserved1<<endl;
- cout<<"保留字_2:"<<pBmpHead.bfReserved2<<endl;
- cout<<"实际位图数据的偏移字节数:"<<pBmpHead.bfOffBits<<endl<<endl;
- }
- void showBmpInforHead(BITMAPINFODEADER &pBmpInforHead){
- cout<<"位图信息头:"<<endl;
- cout<<"结构体的长度:"<<pBmpInforHead.biSize<<endl;
- cout<<"位图宽:"<<pBmpInforHead.biWidth<<endl;
- cout<<"位图高:"<<pBmpInforHead.biHeight<<endl;
- cout<<"biPlanes平面数:"<<pBmpInforHead.biPlanes<<endl;
- cout<<"biBitCount采用颜色位数:"<<pBmpInforHead.biBitCount<<endl;
- cout<<"压缩方式:"<<pBmpInforHead.biCompression<<endl;
- cout<<"biSizeImage实际位图数据占用的字节数:"<<pBmpInforHead.biSizeImage<<endl;
- cout<<"X方向分辨率:"<<pBmpInforHead.biXPelsPerMeter<<endl;
- cout<<"Y方向分辨率:"<<pBmpInforHead.biYPelsPerMeter<<endl;
- cout<<"使用的颜色数:"<<pBmpInforHead.biClrUsed<<endl;
- cout<<"重要颜色数:"<<pBmpInforHead.biClrImportant<<endl;
- }
- int main( int argc, char **argv )
- {
- FILE *fp = fopen(argv[1], "rb");
- BITMAPFILEHEADER head;
- BITMAPINFODEADER info;
- fread(&head, 1, sizeof(BITMAPFILEHEADER), fp);
- fread(&info, 1, sizeof(BITMAPINFODEADER), fp);
- showBmpHead(head);
- showBmpInforHead(info);
- cout<<sizeof(BITMAPFILEHEADER)<<endl; cout<<sizeof(BITMAPINFODEADER)<<endl;
- fclose(fp);
- return 0;
- }
分类:
图形界面编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!