首页 > 其他分享 >获取bmp图片信息

获取bmp图片信息

时间:2024-05-11 19:08:37浏览次数:21  
标签:head int flag unsigned 获取 bmp include 图片

/*******************************************************************
*
*	file name:	get_bmp_info.c
*	author	 :  lzj
*	date	 :  2024/05/11
*	function :  获取bmp图片信息
* 	note	 :  None
*
*	CopyRight (c)  2023-2024   [email protected]   All Right Reseverd 
*
* *****************************************************************/
#include <stdio.h>
#include <sys/ioctl.h>
#include <linux/fb.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#pragma pack(1)    //取消字节对齐
typedef struct BITMAPFILEHEADER /* size: 40 */
{
   char bfType[2];	// 文件的类型,该值必需是0x4D42,也就是字符'BM'。
   unsigned int  bfSize;	// 位图文件的大小,用字节为单位
   unsigned short bfReserved1;// 保留,必须设置为0
   unsigned short bfReserved2;// 保留,必须设置为0
   unsigned int  bfOffBits;// 位图数据距离文件开头偏移量,用字节为单位
} BITMAPFILEHEADER;
typedef struct WINBMPINFOHEADER  /* size: 40 */
{
   unsigned int  biSize;		// BITMAPINFOHEADER结构所需要的字数
   unsigned int  biWidth;		// 图像宽度,单位为像素
   unsigned int  biHeight;		// 图像高度,单位为像素,负数,则说明图像是正向的
   unsigned short biPlanes;		// 为目标设备说明位面数,其值将总是被设为1
   unsigned short biBitCount;	// 一个像素占用的bit位,值位1、4、8、16、24、32
   unsigned int  biCompression;// 压缩类型
   unsigned int  biSizeImage;	// 位图数据的大小,以字节为单位
   unsigned int  biXPelsPerMeter;// 水平分辨率,单位 像素/米
   unsigned int  biYPelsPerMeter;// 垂直分辨率,单位 像素/米
   unsigned int  biClrUsed;	// 
   unsigned int  biClrImportant;// 
} WINBMPINFOHEADER;
#pragma pack()  //恢复字节对齐
int main(int argc, char const *argv[])
{
    BITMAPFILEHEADER BMP_head;
    WINBMPINFOHEADER BPP_head;
    if (2!=argc)
    {
        return -1;
    }
    int bmp_flag=open(argv[1],O_RDWR);
    if (bmp_flag==-1)
    {
        printf("bmp open faile");
    }
    read(bmp_flag,&BMP_head,14);
    read(bmp_flag,&BPP_head,40);
    printf("图像大小: %d ,宽 : %d,高 : %d \n",BMP_head.bfSize,BPP_head.biWidth,BPP_head.biHeight);
    close(bmp_flag);
    return 0;
}




标签:head,int,flag,unsigned,获取,bmp,include,图片
From: https://www.cnblogs.com/lzj-ZJ/p/18187059

相关文章

  • BMP的结构体定义模板
    /****BMP文件头数据结构****/typedefstruct{unsignedchartype[2];//文件类型unsignedintsize;//文件大小unsignedshortreserved1;//保留字段1unsignedshortreserved2;//保留字段2unsignedintoffset;//......
  • 设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每
    /***********************************************************************************************************设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日星期xtt:mm:ss”,并每隔1s写入到本地磁盘中一个*叫做log.txt的文本中,如果文本不存在则创建。......
  • js 复制内容及图片
    //复制纯文本asynccopyText(str){try{//将链接复制到剪贴板注意访问id环境下不可用awaitnavigator.clipboard.writeText(str);this.$Message.success("复制成功");}catch(err){//如果复制失败,处理错误/......
  • fastapi - 获取token
    在FastAPI通过标注Header类型获取Authorization时,会导致openapi页面的请求没法使用fromtypingimportAnnotatedfromfastapiimportFastAPI,Header,Request,Depends,Cookie,Query,APIRouterfromfastapi.routingimportAPIRoutefromfastapi.security.api_keyim......
  • MySQL如何快速获取binlog的开始时间和结束时间
    之前写过一篇文章MySQL如何获取binlog的开始时间和结束时间[1],文章里面介绍了如何获取MySQL数据库二进制日志(binlog)的开始时间与结束时间的一些方法。实际应用当中,我们可能还会遇到效率/性能方面的问题。最近对这个问题做了一些研究,这里就介绍一下如何快速获取MySQL二进制日志(bi......
  • el-table当前行的获取和设置,用于表格行操作
    1、在vue的data区声明当前行变量对象,如果当前行的信息用于了按钮的状态则需要赋予默认值,否则会报找不到属性的错误,比如下面会用到当前记录的status属性值控制按钮是否可用。//表格选中的行data(){return{currentRow:{status:'0'},}}2、在metho......
  • nginx 获取cooike的2种方式
    server{listen10001;server_namelocalhost;default_typetext/html;location=/favicon.ico{log_not_foundoff;access_logoff;}set$userN......
  • 如何获取股票外汇期货的实时行情数据和历史行情数据?
    ​支持如下产品对接:外汇、国际期货、国内期货、国际金银、数字货币、股指期货、美股、印度股、港股、台股、A股产品代码获取地址:http://39.107.99.235:1008/market/market.php产品代码:比特币btcusdt以太坊ethusdt恒指期货HSI德指期货DAX英镑美元fx_sgbpusd欧......
  • 分享一个使用python调用websocket获取实时行情数据的方法
    这个站点可以获取:外汇、国际期货、国内期货、贵金属、能源、虚拟货币、股指期货、美股、台股、港股、印度股、A股、ETF等以下是Python的连接demo,可以参考下。同时也支持其他后端语言的连接,PHP、Java等。获取品种地址:http://39.107.99.235:1008/market/market.phpimportj......
  • c# 图片格式转换
    ImageConvert(@"E:\素材\xx.png",@"E:\素材\xx.ico");publicstaticvoidImageConvert(stringimagePath,stringoutPath){Imageimg=Image.FromFile(imagePath);varwidth=32;varheight=32;Sizesize;if((w......