文档章节

Bitmap 位图文件 编码/解码 --C语言实现

t
 tigerBin
发布于 2017/07/01 19:58
字数 340
阅读 86
收藏 0

Source Code :  https://git.oschina.net/SilentCode/BitmapCoDecoders

仅以 24为真彩色Window Bitmap 文件格式为参考,不支持 OS/2格式的位图文件

大部分24位图文件包含54个字节的文件头信息,且大部分字段相同,不同的地方只有 三个字段共12个字节

offset 从文件头开始的偏移量,hex(十六进制), dec(十进制)

Offset hex Offset dec Size(字段长度) Purpose(用途)
0x02 2 4 bytes 文件的总字节数
0x12 18 4 bytes 图像的宽度(Width)
0x16 22 4 bytes 图像的高度(Height)

 

Bitmap文件采用小端字节序的方式存储头部信息,也就是说,如果读取到的宽度是 00 00 01 00 四个连续的字节,那么实际的宽带是 00 01 00 00 = 0x00010000

数据部分按照从左到右,从下到上的顺序排列,详情请参考:

 https://my.oschina.net/tigerBin/blog/919744

https://en.wikipedia.org/wiki/BMP_file_format

 

BmpDecoder.h 位图文件解码部分

直接调用OpenImage打开文件,读取位图数据,返回结果是按照 BGR的顺序存放的

 

BmpEncoder.h 文图文件编码部分

直接调用Encoder将 BGR顺序的位图数据编码为Bitmap格式的数据流

调用Write函数保存文件数据

 

main.cpp 运行示例

g++ main.cpp -o main
main demo.bmp out.bmp

demo.bmp

out.bmp

© 著作权归作者所有

共有 人打赏支持
t
粉丝 1
博文 65
码字总数 17440
作品 0
武汉
程序员
私信 提问
Android图形处理之Bitmap

Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现...

等待流星
2014/11/17
0
0
NIOS2随笔——BMP解码与VGA显示

1. 系统概述 本设计采用NIOS2 32位处理器,通过SPI接口将SD/TF卡中的BMP图片数据读取到内存中,SD/TF卡的文件系统为FAT32,NIOS2软件实现BMP解码后,启动framereader和Clocked Video Output模...

shugenyin
2016/12/30
0
0
Android解决大图片内存溢出

在Android平台上内存溢出是一件很头疼的事情,但解决办法还是有的,今天来翻译一篇谷歌官方提供的解决方案,原文可以参见:http://developer.android.com/training/displaying-bitmaps/load-bi...

hhs
2012/08/28
0
0
Android图片加载库Glide和Fresco是如何工作的

原文地址:https://blog.mindorks.com/how-the-android-image-loading-library-glide-and-fresco-works-962bc9d1cc40 通常,我们在加载图片的时候经常会遇到如下的问题: 内存溢出错误 图片加...

尺锤
2017/09/16
0
0
Android Bitmap和Canvas学习笔记

位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最有吸引力的。 1. 从资源中获取位图 可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。 当然,首先需要获取资源: ...

迷途d书童
2012/03/05
897
0

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu16.04下安装docker

[TOC] 本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版,是开发人员和小型团队的理想选择。 1. 开始安装 1.1 由于...

豫华商
43分钟前
5
0
使用XShell工具密钥认证登录Linux系统

如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥。哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方...

dragon_tech
55分钟前
3
0
day178-2018-12-15-英语流利阅读-待学习

“真蛛奶茶”了解一下?蜘蛛也会产奶了 Lala 2018-12-15 1.今日导读 “蛋白质含量是牛奶的 4 倍,并有着更低的脂肪和含糖量”,听起来诱人又美味的并不是羊奶或豆奶,而是你可能打死都想不到...

飞鱼说编程
今天
10
0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents

场景重现 npm install --verbose 安装依赖的时,出现如下警告 强迫症患者表示不能接受 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):npm WARN......

taadis
今天
2
0
OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
398
6

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部