音视频数据处理(-2)linux下自定义bmp头输出bmp的信息
来源:互联网 发布:暴力破解linux密码 编辑:程序博客网 时间:2024/05/15 13:09
windows下提供了windows.h头文件,里面包含了bmp的文件头结构体和信息头结构体,而linux下没有,我们仿照它自己定义了这两个结构体,实现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;
}
g++ a.c
阅读全文
0 0
- 音视频数据处理(-2)linux下自定义bmp头输出bmp的信息
- 音视频数据处理(-1) BMP格式详解
- 音视频数据处理(-3) 自行生成bmp图像以及bmp图像解析
- bmp图片的头相关信息
- linux下读取bmp图像头
- linux下读取bmp图片文件头
- 读取bmp图片的文件头,与位图信息头
- bmp 的文件格式头
- 遍历文件目录及bmp位图信息头的读取
- BMP头
- 读取 bmp 文件头信息, read bmp infomation
- linux下读取bmp
- 256色的BMP文件分为 BMP文件头,BMP信息头,彩色表和位图信息矩阵4部分。【个人收藏】
- Linux下BMP格式文件的保存问题
- bmp图像的数据信息
- VC根据位图的宽、高、位数来建立BMP文件头和信息头
- 24位bmp图片文件头、信息头的二进制数据
- 24/16/8位bmp图片文件头、信息头的二进制数据
- scanf函数使用大全
- java并发编程学习(2)
- 关于使用VS实现MFC串口通信
- 支持向量机通俗导论(理解SVM的三层境界)
- Activity启动模式及Intent 常用Flag
- 音视频数据处理(-2)linux下自定义bmp头输出bmp的信息
- WebStorm 2017.1.3激活码
- 自定义MVC
- C# 中HttpClient的使用中同步异步问题
- 编程第四十五天
- mysql 分区
- vs2015+opencv3.2.0配置的一些小事情
- Qt将窗体变为顶层窗体(activateWindow(); 和 raise() )
- 【扫盲专用】区块链技术原理---网搜最好的整理材料