解码有好几个不同的方法,比如说,我们把很大的图片解码,就会非常慢.还要缩小,所以先从小尺寸解码开始.而且这样其实的目的就是,参与了解码,但是,大多数数据浪费在无所谓的读上.所以我们解释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语言]相关推荐

  1. python语言源程序文件类型_Python语言源程序文件的文件类型是__________。

    [单选题]Do you know Li Ming? No, I don't know _____. [填空题]从同步.异步方式的角度讲,82C55的基本输入/输出方式属于 通讯 . [判断题]扩展I/ ...

  2. c语言创建文件存放,C语言文件操作

    C语言文件操作 常见硬件设备所对应的文件 文件 硬件设备 stdin 标准输入文件,一般指键盘:scanf().getchar() 等函数默认从 stdin 获取输入. stdout 标准输出文件,一 ...

  3. c语言读取文件函数,C语言文件操作详细分析:读取文件(fread函数使用)

    C语言文件操作详细分析:读取文件(fread函数使用) 这里详细介绍了C语言读取文件的函数fread的使用说明,参照了MSDN的说明,同时加入自己的经验让大家学的更加明白. C语言读取文件函数frea ...

  4. c语言数据文件是,C语言数据文件操作.ppt

    C语言数据文件操作 第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 ...

  5. c语言H文件意思,C语言中 *.c和*.h文件的区别!

    这是HR面试我的一道题,没技术上含量,不过细想起来,还是C语言的最基本的知识!俗话说,目标决定动力,细节决定成败! C文件就是C语言系列的源文件,而H文件则是C语言的头文件,即C系列中存放函数和全局变 ...

  6. 手机c语言多文件编程,C语言多文件编程

    今天,IT培训网小编为大家总结的是C语言,C语言多模块开发(多文件编程). 目前为止,我们编写的大部分C语言程序都只包含一个源文件,没有将代码分散到多个模块中,对于只有几百行的小程序来说这或许可以接受 ...

  7. c语言源程序文件有,C语言源程序文件的后缀是什么?

    什么是源程序?什么是源文件?源程序是一种计算机的代码.它会符合一定的语法,经过编译器编译或解释后生成具有一定功能的可执行文件或组件,也可以是某种接口.是用程序设计语言编写的程序. 源文件就是用汇编语言 ...

  8. 怎么用c语言打开文件6,c语言中用什么来打开文件

    printf("%6d", aa[i][j]); printf ("\n"); } y = fun (aa); printf("\nThe sum: ...

  9. c语言中跨文件变量,C语言中跨文件的全局变量

    声明:突然看到这篇文章,发现了c语言中使用全局变量的错误,特转之. 首先看一段代码(https://gist.github.com/3760736) func.c int buf = 0 ; void ...

最新文章

  1. python语言接口_Python-接口自动化(一)
  2. 物联网帝国——孙正义职业生涯最大的豪赌
  3. virtual box挂载 共享文件夹
  4. css二级菜单会然下面遮住_JavaScript实现下拉二级菜单详解
  5. python程序跨平台桌面_Python中的跨平台桌面通知程序
  6. 特斯拉股价,真的“血崩”!
  7. ​不容错过的 13 个 JavaScript 实用技巧!
  8. Linux系统centos7+VMwareWorkstation创建共享文件夹错误解决方法集锦
  9. mbedtls基础及其应用
  10. 北洋降舰之鱼雷艇队 ZT
  11. 【数学建模】(五):MATLAB程序设计与积分
  12. (附源码)php柘城农产品销售系统 毕业设计020832
  13. 往后余生的计算机音乐,纯音乐《飞翔的梦》 往后余生,与你同行
  14. js监听html页面大小变化,js实时获取浏览器窗口大小
  15. 达梦数据库SQL常用查询语句
  16. 使用Stata做脉冲响应分析
  17. snn和ann消耗能量对比
  18. 将png转换为bmp格式
  19. 【日常学习】最全JavaScript使用详解
  20. 安卓系统级返回键和HOME键

热门文章

  1. 在Eclipse环境下Tomcat的配置
  2. 力控-油罐进出油控制设计
  3. 基于主题模型的专利文本主题挖掘与应用研究- 专利文本主题挖掘方法
  4. SHA256withRSA密钥加签
  5. linux查杀minergate-cli/minerd病毒
  6. 从0开始搭建低代码平台系列(系统设计与规划)
  7. 实验二 结构化分析与设计
  8. c语言编译过程及对应命令
  9. 桩筏有限元中的弹性板计算_建研院关于桩筏计算几个问题的解答
  10. 条条大路通云端,华为云应用平台ROMA破解传统政企上云困境