Png转bmp android,png图片文件的数据结构以及转换为bmp位图的源代码

png图片文件的数据结构

PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是企图替代GIF和TIFF文件格式,同

时增加一些GIF文件格式所不具备的特性。流式网络图形格式(Portable Network Graphic Format,PNG

)名称来源于非官方的“PNG's Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。P

NG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,

并且还可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法。

一、数据结构

1.PNG数据块

PNG定义了两种类型的数据块,一种是称为关键数据块,这是标准的数据块,另一种叫做辅助数据

块,这是可选的数据块。关键数据块定义了5个标准数据块,每个PNG文件都必须包含它们,PNG读写软

件也必须要支持这些数据块。至于可选数据块,规范只是提倡予以支持。

下表就是PNG中数据块的类别,其中 * 号表示关键数据块:

----------------------------------------------------------------

数据块符号 数据块名称    多数据块  可选否  位置限制

----------------------------------------------------------------

*   PNG文件标识           否    第一块

IHDR *  文件头数据块    否   否   第二块

cHRM  基色和白色点数据块  否    是   在PLTE和IDAT之前

gAMA    图像γ数据块     否    是   在PLTE和IDAT之前

sBIT    样本有效位数据块  否    是   在PLTE和IDAT之前

PLTE*   调色板数据块  否  是 在IDAT之前

bKGD  背景颜色数据块  否  是 在PLTE之后IDAT之前

hIST  图像直方图数据块  否    是   在PLTE之后IDAT之前

tRNS    图像透明数据块    否    是   在PLTE之后IDAT之前

oFFs    (专用公共数据块)  否    是   在IDAT之前

pHYs    物理像素尺寸数据块  否    是   在IDAT之前

sCAL    (专用公共数据块)  否    是   在IDAT之前

IDAT *   图像数据块      是    否   与其他IDAT连续

tIME    图像最后修改时间  否    是   无限制

tEXt    文本信息数据块    是    是   无限制

zTXt    压缩文本数据块    是    是   无限制

fRAc    (专用公共数据块)  是    是   无限制

gIFg    (专用公共数据块)  是    是   无限制

gIFt    (专用公共数据块)  是    是   无

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值