PPM 颜色显示错误



显示PPM时得到奇怪的结果:

像素显示

(这实际上是一个放大的PNG(

以下是该文件的外观:

文本显示

尺寸很好(10 行,8 列(,只是颜色错误(还是我错了?

正如文件第三行所说,我想为每个通道使用一个从 0 到 255 的值。使用通常的 rgb 颜色空间,例如 (255, 255, 255( 表示白色,(0, 0, 0( 表示黑色,(255, 0, 0( 表示红色等。但是图像中的这些颜色显然与文件中的颜色不同。

乍一看,图像似乎已经变暗了。

我误解了格式吗?文件不是这样解释的吗?

本文档:http://netpbm.sourceforge.net/doc/ppm.html 介绍了 PPM 图像格式。

当在文件开头找到P6的"魔术"值时,像素的颜色将存储为二进制数据。引用前面提到的文件(强调我的(:

[...]高度行的栅格,按从上到下的顺序排列。每行由宽度像素组成,按从左到右的顺序排列。每个像素都是红色、绿色和蓝色样本的三元组,按此顺序排列。每个样本都以纯二进制表示,由 1 或 2 个字节表示。如果 Maxval 小于 256,则为 1 个字节。否则,它是 2 个字节。最高有效字节是第一个。

提问者显示的文件似乎包含其十进制文本表示形式。

因此,字符串"n224 93 229..."(是的,我怀疑Windows尾行序列"rn"(被解释为(假设文件以ASCII格式保存({10, 50, 50}, {50, 32, 32}, {57, 51, 32}, ...

注意中间的黑色像素,可能对应于第一行的末尾,它可能是一个{13, 10, 32}("rn "(。

如果将魔术值更改为P3,则应正确解释。

相关内容

  • 没有找到相关文章

最新更新