您现在的位置是:首页 > 编程 > 图形学和渲染图形学和渲染

图片原理 jpg png tga bmp 存储格式

Tdou2020-04-17【图形学和渲染】人已围观

简介常见的图像格式有:jpg、png、tga、tga、bmp 等等

一、图像处理 

作为图像学开发者首要事情搞清楚他们存储的格式, 每种图像格式包括很多信息,其中主要还是颜色的存储 rgb rgba 。
其中图像存储安装矩阵的方式 如下图

enter image description here
如果有A通道说明这个图片有透明效果, R、G、B、 每个分量用一个字节(8位)来表示,
所以图(1) 中每个像素大小为 3*8=24位图,
而图(2)中每个像素大f小是 4*8=32位。


图像是二维数据,而在内存中只能一维存储。
二维转一维有2种常用的方式: 按像素 "行排列" 从上往下或从下往上。
不同的图形库中每个像素点中RGBA的排序顺序可能不一样, 上面说过一般有RGB或 RGBA 四个分量,
那么在内存中RGB就有多种情况,跟排列组合类似, 不过一般只会有 RGB、BGR、RGBA、BGRA这几种排列,
绝大数图形库或环境是 BGR\BGRA排列。

图像压缩

如果图像原始格式直接存储到文件中会很大, 比如一个 8000*8000 24位图 所占文件大小为 8000*8000*3字节=183.1MB 大小非常可观。

如果使用zip或rar之类的通用算法压缩图像数据, 得到的压缩比通常不会太高,原理是因为压缩算法没有针对图像数据结构进行特殊处理。
于是就有了jpeg、png等格式,同样是图像压缩算法 jpeg和png也有不同的使用场景。

以下图是图像在内存中的存储:


jpeg、png文件之于图像,就相当于 zip、rar 格式之于普通文件(用zip、rar 格式对普通文件进行压缩)。
另外bmp是无压缩的图像格式,在这里以Bmp为例,介绍一下Bmp格式的图片存储格式。
 

bmp格式没有压缩像素格式,存储在文件中时先有文件头、再图像头、后面就都是像素数据了,上下颠倒存储。用windows自带的mspaint工具保存bmp格式时,可以发现有四种bmp可供选择:

  • 单色: 一个像素只占一位,要么是0,要么是1,所以只能存储黑白信息
  • 16色位图: 一个像素4位,有16种颜色可选
  • 256色位图: 一个像素8位,有256种颜色可选
  • 24位位图: 就是图(1)所示的位图,颜色可有2^24种可选,对于人眼来说完全足够了。

这里为了简单起见,只详细讨论最常见的24位图的bmp格式。

以下bmp 文件头和图片格式头的结构:

enter image description here

总结

因为我们对GPU编程核心就是对图像的处理,只有掌握了它们,我们才可以根据需求或者是美术的需求做出各种渲染效果,比如在材质中剔除黑色,进行反射,折射,以及高光、法线等的渲染。即使是后处理渲染又称为滤镜的渲染也是对图片像素的处理。

Tags:精选博文   图像处理   图片原理   jpg   png   tga   图像存储格式

很赞哦! ()

  • 微信收款码
  • 支付宝收款码
打赏

文章评论

站点信息

  • 建站时间:2019-12-11
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计52篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们