2021SC@SDUSC
Go语言的简单2D游戏库-Ebiten
目录
概览
包 png 实现了一个 PNG 图像解码器和编码器。
便携式网络图形----PNG 规范
概念
图像
该国际标准规定了 PNG 数据流,并对生成 PNG 数据流的 PNG 编码器、解释 PNG 数据流的 PNG 解码器和将一个 PNG 数据流转换为另一个的 PNG 编辑器提出了一些要求。它没有指定应用程序与 PNG 编码器、解码器或编辑器之间的接口。图像呈现给编码器或由解码器传送的精确形式没有规定。四种图像是有区别的。
该源图像是呈现给编码器PNG图像。
仅在概念上存在的参考图像是矩形像素的矩形阵列,所有像素都具有相同的宽度和高度,并且都包含相同数量的无符号整数样本,三个(红色、绿色、蓝色)或四个(红色、绿色、蓝色、阿尔法)。特定类型(红色、绿色、蓝色或 alpha)的所有样本的数组称为通道。每个通道的样本深度范围为 1 到 16,这是通道中每个样本使用的位数。不同的通道可能有不同的样本深度。红色、绿色和蓝色样本决定了像素颜色的红色、绿色和蓝色分量的强度;如果它们都为零,则像素为黑色,并且如果它们都有最大值(2采样深度-1),像素为白色。alpha 样本确定像素的不透明程度,其中零表示完全透明,最大值表示完全不透明。在三通道参考图像中,所有像素都是完全不透明的。(四通道参考图像也有可能使所有像素完全不透明;不同之处在于后者具有特定的 alpha 样本深度,而前者没有。)像素的每一水平行称为扫描线。像素在每条扫描线内从左到右排序,扫描线从上到下排序。PNG 编码器可以将源图像直接转换为 PNG 图像,但从概念上讲,它首先将源图像转换为参考图像,然后将参考图像转换为 PNG 图像。根据源图像的类型,从源图像到参考图像的转换可能需要丢失信息。这种转换超出了本国际标准的范围。但是,始终可以从 PNG 数据流中准确地恢复参考图像。
的PNG图像的α分离,索引,RGB合并,α-压实,和样本深度比例:从参考图像由一系列变换而获得的。定义了五种类型的 PNG 图像。(如果 PNG 编码器实际上将源图像直接转换为 PNG 图像,并且源图像格式已经与 PNG 图像格式相似,则编码器可能能够避免进行其中一些转换。尽管并非所有样本深度都在PNG图像明确支持1到16位的范围,可以记录参考图像每个通道的有效位数。PNG 图像中的所有通道都具有相同的样本深度。PNG 编码器从 PNG 图像生成 PNG 数据流。PNG 解码器采用 PNG 数据流并重新创建 PNG 图像。
所述递送图像从通过解码PNG数据流中获得的PNG图像构成。没有为交付的图像指定特定格式。查看器向用户呈现尽可能接近原始源图像外观的图像。
四种图像之间的关系如下图。
源、参考、PNG 和显示图像之间的关系
样本、通道、像素和样本深度之间的关系如下图。
样本、样本深度、像素和通道之间的关系
色彩空间
可以通过以下三种方式之一指定颜色样本所在的 RGB 颜色空间: