PPM 错误的颜色显示
PPM wrong color display
我在显示 PPM 时得到奇怪的结果:
pixeldisplay
(这实际上是一个放大的 PNG)
文件如下所示:
textdisplay
尺寸没问题(10 行,8 列),只是颜色不对(或者我错了?)。
如文件第 3 行所述,我想为每个通道使用 0 到 255 之间的值。使用常用的 rgb 颜色 space,例如 (255, 255, 255) 表示白色,(0, 0, 0) 表示黑色,(255, 0, 0) 表示红色,等等。但是图像中的那些颜色显然与文件中的颜色不一样。
乍一看,图像似乎太暗了。
我对格式有误解吗?文件不是这样解释的吗?
此文档:http://netpbm.sourceforge.net/doc/ppm.html 描述了 PPM 图像格式。
当在文件开头找到 "magic" 值 P6
时,像素的颜色将存储为二进制数据。引用前面提到的文件(强调我的):
[...] A raster of Height rows, in order from top to bottom. Each row consists of Width pixels, in order from left to right. Each pixel is a triplet of red, green, and blue samples, in that order. Each sample is represented in pure binary by either 1 or 2 bytes. If the Maxval is less than 256, it is 1 byte. Otherwise, it is 2 bytes. The most significant byte is first.
提问者显示的文件似乎包含他们的十进制文本表示。
所以,字符串"\n224 93 229..."
(是的,我怀疑windows结尾序列"\r\n"
)被解释为(假设文件以ASCII格式保存){10, 50, 50}, {50, 32, 32}, {57, 51, 32}, ...
.
注意中间的黑色像素,可能对应第一行的末尾,可能是{13, 10, 32}
("\r\n "
).
如果将魔法值更改为 P3
,应该可以正确解释它。
我在显示 PPM 时得到奇怪的结果:
pixeldisplay
(这实际上是一个放大的 PNG)
文件如下所示:
textdisplay
尺寸没问题(10 行,8 列),只是颜色不对(或者我错了?)。
如文件第 3 行所述,我想为每个通道使用 0 到 255 之间的值。使用常用的 rgb 颜色 space,例如 (255, 255, 255) 表示白色,(0, 0, 0) 表示黑色,(255, 0, 0) 表示红色,等等。但是图像中的那些颜色显然与文件中的颜色不一样。
乍一看,图像似乎太暗了。
我对格式有误解吗?文件不是这样解释的吗?
此文档:http://netpbm.sourceforge.net/doc/ppm.html 描述了 PPM 图像格式。
当在文件开头找到 "magic" 值 P6
时,像素的颜色将存储为二进制数据。引用前面提到的文件(强调我的):
[...] A raster of Height rows, in order from top to bottom. Each row consists of Width pixels, in order from left to right. Each pixel is a triplet of red, green, and blue samples, in that order. Each sample is represented in pure binary by either 1 or 2 bytes. If the Maxval is less than 256, it is 1 byte. Otherwise, it is 2 bytes. The most significant byte is first.
提问者显示的文件似乎包含他们的十进制文本表示。
所以,字符串"\n224 93 229..."
(是的,我怀疑windows结尾序列"\r\n"
)被解释为(假设文件以ASCII格式保存){10, 50, 50}, {50, 32, 32}, {57, 51, 32}, ...
.
注意中间的黑色像素,可能对应第一行的末尾,可能是{13, 10, 32}
("\r\n "
).
如果将魔法值更改为 P3
,应该可以正确解释它。