您现在的位置是:首页 > 编程 > 图形学和渲染图形学和渲染
图片原理 jpg png tga bmp 存储格式
Tdou2020-04-17【图形学和渲染】人已围观
简介常见的图像格式有:jpg、png、tga、tga、bmp 等等
一、图像处理
作为图像学开发者首要事情搞清楚他们存储的格式, 每种图像格式包括很多信息,其中主要还是颜色的存储 rgb rgba 。
其中图像存储安装矩阵的方式 如下图
如果有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 文件头和图片格式头的结构:
总结
因为我们对GPU编程核心就是对图像的处理,只有掌握了它们,我们才可以根据需求或者是美术的需求做出各种渲染效果,比如在材质中剔除黑色,进行反射,折射,以及高光、法线等的渲染。即使是后处理渲染又称为滤镜的渲染也是对图片像素的处理。
Tags:精选博文 图像处理 图片原理 jpg png tga 图像存储格式
很赞哦! ()
微信收款码
支付宝收款码
上一篇:返回列表
下一篇:计算机图形的学习目录汇总