GETbmpinfo

news/2024/9/28 5:23:06

image

/*************************************************
/*** @file name:	GETbmpinfo* @brief  实现对BMP图片位图信息的获取* @author 15070884254@163.com* @date 2024/05/11* @version 1.0 :在下坂本,有何贵干 * @property :none* @note   none* CopyRight (c)  2023-2024  15070884254@163.com   All Right Reseverd***************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>#pragma pack(1)typedef struct bitmap_file_header
{unsigned short bftype;unsigned int bfsize;unsigned short bfreserved1;unsigned short bfreserved2;unsigned int bfoffsetbits;
};typedef struct bitmap_info_header
{unsigned int bisize;int width;int height;unsigned short biplanes;unsigned short bidepth;unsigned int bicompression;unsigned int bisizeimage;int x_pels_permeter;int y_pels_permeter;unsigned int color_used;unsigned int color_important;
};
#pragma pack()int main(int argc, char const *argv[])
{// 1.BMP图片的路径是通过命令行传递,所以需要检测参数有效性if (2 != argc){printf("argument is invaild\n");return -1;}// 2.利用系统调用open()打开待读取数据的BMP图片int bmp_fd = open(argv[1], O_RDWR);if (-1 == bmp_fd){printf("open %s is error\n", argv[1]);return -1;}struct bitmap_file_header bmpfile;struct bitmap_info_header bmpinfo;read(bmp_fd,&bmpfile,14);read(bmp_fd,&bmpinfo,40);// 4.输出BMP信息printf("bmp name is %s ,width = %d,height = %d,size = %d\n", argv[1], bmpinfo.width, bmpinfo.height, bmpfile.bfsize);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30346.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

小小Redis数据类型,拿捏

面试遇到过的Redis问题Redis的数据类型怎么利用Redis解决超卖问题1. 什么是Redis Redis就是一个非关系型数据库(NoSQL),我们知道关系型数据库MySQL,在MySQL里我们对于数据的增删改查需要SQL语句(select * from...),麻不麻烦——麻烦,慢不慢——当然是慢的,因为数据是存…

一种利用光电容积描记(PPG)信号和深度学习模型对高血压分类的新方法

具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI 据世界心脏联合会统计,截至 2022 年,全球有 13 亿人被诊断患有高血压,每年约有 1000 万人死于高血压。一个人有必要拥有有益于心脏健康的生活方式,以防止被诊断出患有心血管疾病(CVD)和动脉疾病等致命疾病…

BMP图片内部结构

BMP图片内部结构 ​ BMP文件的数据按照从文件头开始的先后顺序分为四个部分:分别是位图文件头、位图信息头、调色板(24bit位图是没有的)、位图数据(RGB)。 (1)位图文件头(Bitmap-File Header)包含了图像类型、图像大小、两个保留字以及位图数据存放地址。(2)位图信息…

使用 Redisson 框架基于 Redis 实现分布式锁

分布式锁可以采用数据库、zookeeper、redis 三种方式实现。 采用数据库实现方式,主要采用表字段的唯一索引特性。数据库是非常昂贵的资源,非常不推荐,最致命就是性能,不要去增加不必要的负担。 采用 zookeeper 的实现方式,主要使用其为客户端创建临时有序节点的特性,在我…

笛卡尔树学习笔记

笛卡尔树 引入 是一种二叉树,每个节点由一个二元组 \((k,w)\) 形成。\(k\) 满足二叉搜索树的性质,\(w\) 满足堆的性质。上面这棵笛卡尔树相当于把数组元素值当作键值 \(w\),而把数组下标当作键值 \(k\)。显然可以发现,这棵树的键值 \(k\) 满足二叉搜索树的性质,而键值 \(w…

ImDisk高级指南:打造你的专属虚拟磁盘空间

ImDisk使用详解和高级用法一、ImDisk使用详解创建虚拟磁盘:使用命令行参数创建虚拟磁盘。例如,imdisk -a -s 10m -m B: 命令将创建一个大小为10MB的虚拟磁盘,并将其分配给B盘符。 你可以使用 -s 参数指定虚拟磁盘的大小,支持的单位包括b、k、m、g、t等,或者使用%表示可用内…

STM CubeMx不能生成代码的解决方法

在使用STM CubeMx时,遇到不能生成代码的问题,即点击“GENERATE CODE”后,软件没有任何反应。 从网上找到若干解决方案,大概是: 以下是可能的解决方法: 1. 确保你已经安装了正确版本的Keil和STM32CubeMX,并且它们都能正常运行。 2. 在STM32CubeMX中点击生成代码按钮之前,…

利用系统IO读取磁盘上指定BMP图片的宽和高以及大小

文件IO代码 /*************************************************************************************** file name: 1.c* author : lu.ciana.598393@gmail.com* date : 2024/05/11* function : 利用系统IO读取磁盘上指定BMP图片的宽和高以及大小* note : n…