我们正在编程的光线跟踪器生成简单的PPM图像文件。我们写了一些为我们生成场景定义的东西,以便我们可以用这些文件创建动画。
最初的工作流程是通过 File>打开Photoshop中的所有文件。脚本>将文件加载到堆栈并将结果导出为gif。虽然工作流程很崎岖,但效果很好。质量很好,文件大小很大。
现在,当使用ImageMagick从PPM转换为GIF时,生成的图像的质量非常糟糕。也就是说,ImageMagick生成的单个 GIF文件的质量已经很糟糕了。将它们与GIF结合起来当然不会改变它。
原始文件(使用Photoshop保存为PNG):
GIF(使用ImageMagick从PPM转换):
(特别注意光线发出点周围的斑点)
我刚刚使用mogrify -path ../gif -format gif 006.ppm
来获得该结果。我真的不知道从哪里开始调整这个(尽管我使用了reference中的几个选项)。
(一个关于两个文件之间差异的动画,所以问题更容易看到。作者:Mark Setchell)
答案 0 :(得分:2)
其他选项
另一种选择可能是转换为MPG格式,如下所示:
convert -delay 1 a-*png m2v:movie.mpg
或
convert -delay 1 a-*ppm m2v:movie.mpg
更新了答案
我明白了 - 你必须为动画使用GIF,所以PNG不是一个选择。也许你可以在不同的颜色空间中进行量化,例如对Lab
colorspace:
convert orig.ppm -quantize Lab -colors 256 result.gif
其他选项可能是YUV
,RGB
- 您可以使用
identify -list colorspace
原始答案
问题是您的PPM文件的颜色多于GIF格式可以包含的颜色。您可以像这样计算使用的颜色:
convert orig.ppm -print "%k\n" null:
642
显示您的图片有642种颜色。
GIF格式包含256种颜色的调色板 - reference。你可以改用PNG格式吗?