bmp文件大小计算C语言,BMP文件解码[C语言]
解码有好几个不同的方法,比如说,我们把很大的图片解码,就会非常慢.还要缩小,所以先从小尺寸解码开始.而且这样其实的目的就是,参与了解码,但是,大多数数据浪费在无所谓的读上.所以我们解释BMP,就不考虑缩放了.第一步,要得到的是BMP的一些头信息,这个其实很简单,只要顺序读出来,然后套到数组你们就可以完成了.举例:
f_read(f_bmp,databuf,sizeof(BITMAPINFO),(UINT*)&br);//读出BITMAPINFO信息
pbmp=(BITMAPINFO*)databuf;//得到BMP的头部信息
color_byte=pbmp->bmiHeader.biBitCount/8;//彩色位 16/24/32
biCompression=pbmp->bmiHeader.biCompression;//压缩方式
picinfo.ImgHeight=pbmp->bmiHeader.biHeight;//得到图片高度
picinfo.ImgWidth=pbmp->bmiHeader.biWidth; //得到图片宽度
其中这就是把结构体读出来,然后把内容做出来.然后后面都是各种颜色,颜色有4字节,3字节,2字节,1字节的都有,其中1字节需要颜色表,其中4字节需要Alpha,3字节是888,2字节可能是555或者565,分别做解释.逻辑如下:
if(color_byte==3) //24位BMP图片
{
for(j=0;j>3; //B
color+=((uint16_t)(*bmpbuf++)<<3)&0X07E0;//G
color+=(((uint16_t)*bmpbuf++)<<8)&0XF800;//R
pic_phy.draw_point(x+tx,y+ty,color);//显示图片
tx++;
}
bmpbuf+=rowadd;//跳过填充区
tx=0;
ty--;
}
}else if(color_byte==2)//16位BMP图片
{
for(j=0;j得到color时候,就应该把颜色写到你需要的地方了.接着就可以在你的MCU上解释BMP文件了.
bmp文件大小计算C语言,BMP文件解码[C语言]相关推荐
- python语言源程序文件类型_Python语言源程序文件的文件类型是__________。
[单选题]Do you know Li Ming? No, I don't know _____. [填空题]从同步.异步方式的角度讲,82C55的基本输入/输出方式属于 通讯 . [判断题]扩展I/ ...
- c语言创建文件存放,C语言文件操作
C语言文件操作 常见硬件设备所对应的文件 文件 硬件设备 stdin 标准输入文件,一般指键盘:scanf().getchar() 等函数默认从 stdin 获取输入. stdout 标准输出文件,一 ...
- c语言读取文件函数,C语言文件操作详细分析:读取文件(fread函数使用)
C语言文件操作详细分析:读取文件(fread函数使用) 这里详细介绍了C语言读取文件的函数fread的使用说明,参照了MSDN的说明,同时加入自己的经验让大家学的更加明白. C语言读取文件函数frea ...
- c语言数据文件是,C语言数据文件操作.ppt
C语言数据文件操作 第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 ...
- c语言H文件意思,C语言中 *.c和*.h文件的区别!
这是HR面试我的一道题,没技术上含量,不过细想起来,还是C语言的最基本的知识!俗话说,目标决定动力,细节决定成败! C文件就是C语言系列的源文件,而H文件则是C语言的头文件,即C系列中存放函数和全局变 ...
- 手机c语言多文件编程,C语言多文件编程
今天,IT培训网小编为大家总结的是C语言,C语言多模块开发(多文件编程). 目前为止,我们编写的大部分C语言程序都只包含一个源文件,没有将代码分散到多个模块中,对于只有几百行的小程序来说这或许可以接受 ...
- c语言源程序文件有,C语言源程序文件的后缀是什么?
什么是源程序?什么是源文件?源程序是一种计算机的代码.它会符合一定的语法,经过编译器编译或解释后生成具有一定功能的可执行文件或组件,也可以是某种接口.是用程序设计语言编写的程序. 源文件就是用汇编语言 ...
- 怎么用c语言打开文件6,c语言中用什么来打开文件
printf("%6d", aa[i][j]); printf ("\n"); } y = fun (aa); printf("\nThe sum: ...
- c语言中跨文件变量,C语言中跨文件的全局变量
声明:突然看到这篇文章,发现了c语言中使用全局变量的错误,特转之. 首先看一段代码(https://gist.github.com/3760736) func.c int buf = 0 ; void ...
最新文章
- python语言接口_Python-接口自动化(一)
- 物联网帝国——孙正义职业生涯最大的豪赌
- virtual box挂载 共享文件夹
- css二级菜单会然下面遮住_JavaScript实现下拉二级菜单详解
- python程序跨平台桌面_Python中的跨平台桌面通知程序
- 特斯拉股价,真的“血崩”!
- ​不容错过的 13 个 JavaScript 实用技巧!
- Linux系统centos7+VMwareWorkstation创建共享文件夹错误解决方法集锦
- mbedtls基础及其应用
- 北洋降舰之鱼雷艇队 ZT
- 【数学建模】(五):MATLAB程序设计与积分
- (附源码)php柘城农产品销售系统 毕业设计020832
- 往后余生的计算机音乐,纯音乐《飞翔的梦》 往后余生,与你同行
- js监听html页面大小变化,js实时获取浏览器窗口大小
- 达梦数据库SQL常用查询语句
- 使用Stata做脉冲响应分析
- snn和ann消耗能量对比
- 将png转换为bmp格式
- 【日常学习】最全JavaScript使用详解
- 安卓系统级返回键和HOME键