在linux下读取bmp文件头的完整代码。
呵呵,贴在这里记录一下。
- #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;
- }
在linux下读取bmp文件头的完整代码。的更多相关文章
- go 读取BMP文件头二进制读取
BMP文件头定义: WORD 两个字节 16bit DWORD 四个字节 32bit package main import ( "encoding/binary" "f ...
- Arch Linux下Visual Stdio Code在格式化C代码时报错
libtinfo.so.5: cannot open shared object file: No such file or directory Arch Linux下Visual Stdio Cod ...
- Linux下获取本机IP地址的代码
Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...
- windows和linux下读取文件乱码的终极解决办法!
乱码是个很恶心的问题. windows和linux读取txt文件,一旦读取了,编码发生改变,就无法再还原了,只有重启项目. 网上有很多方法都是读取文件头,方法很好,但是亲测都不能用(右移8位判断0xf ...
- 在windows 、linux下读取目录下所有文件名
Windows要引入的头文件是<Windows.h> 主要是两个函数FindFirstFile.FindNextFile MSDN里是这么说的: FindFirstFile functio ...
- 在Firefox中发现一个在Linux下查看chm文档的插件
在Firefox浏览器插件中搜索插件chmfox插件,安装后就可以在linux下通过Firefox浏览器阅读chm文档了.
- Linux下查看目录文件数和文件大小
一.查看当前目录下文件个数 在linux下查看目录下有多少文件可以用:ls -l 命令查看,ls -lR 递归查看所有目录, 如果文件很多,则用wc命令 和 grep 命令进行过滤. wc命令显示输 ...
- Linux下部署多个Tomcat(完整)
Linux下部署多个Tomcat 1.环境:1.1.Centos 5.01.2.apache-tomcat-6.0.18 2.需要解决一下几个问题2.1.不同的tomcat启动和关闭监听不同的端口2. ...
- Linux下读取默认MAC地址
导读MAC(Media Access Control,介质访问控制)计算机通过它来定义并识别网络设备的位置.在嵌入式linux学习中不可避免也会遇到MAC,本文主要描述了如何通过操作OTP来读取嵌入式 ...
随机推荐
- PHP 表单防止刷新提交的方法
当然,最直接的办法就是尽量不要使用自动提交的表单,然而,当我们需要网页主动post表单进行初始化时,就不得不面对这个问题了 -------------------------------------- ...
- Change the ball--hdu2277
Change the ball Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- avd name对AVD的创建的影响
创建avd的时候出现OK按钮显示灰色不可按状态,各种系数都显示对的.如下所示: 检查了各项觉得没有什么错,最后原来出错在AVD的name上面,不允许有空格或者非英文字母,把空格取消之后就没有问题了.
- 100个linux常用命令
1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...
- c++优先级
蒟蒻连c++的运算优先级都搞不清楚QAQ 转载自http://www.cnblogs.com/chenglei/archive/2009/08/03/1537822.html C++优先级列表 Pre ...
- Java的Git管理工具Gitblit
From:http://www.oschina.net/p/gitblit Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具. 下载地 ...
- linux之SQL语句简明教程---AND OR
在上一页中,我们看到 WHERE 指令可以被用来由表格中有条件地选取资料. 这个条件可能是简单的 (像上一页的例子),也可能是复杂的.复杂条件是由二或多个简单条件透过 AND 或是 OR的连接而成.一 ...
- HDFS的运行原理(转载)
原文地址:http://www.cnblogs.com/laov/p/3434917.html 简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系 ...
- poj 2186 (强连通缩点)
题意:有N只奶牛,奶牛有自己认为最受欢迎的奶牛.奶牛们的这种“认为”是单向可传递的,当A认为B最受欢迎(B不一定认为A最受欢迎),且B认为C最受欢迎时,A一定也认为C最受欢迎.现在给出M对这样的“认为 ...
- UMeditor 百度编辑器Mini学习
准备开始研究百度的mini编辑器 1.4.3的昨天配置好了 ,也可以用了(.net 3.5) 为此我废了好大的力 研究了一天才弄好 结果今天一来上司就说 这个1.4.3 我们没必要用这么大的 用 ...