合并任意大小的POV-Ray部分图像

3

起始情况:

使用 povray 创建了场景的 4 个部分图像。


(注:povray 是一种用于生成高质量 3D 图像的免费软件。)
povray +SR1 +ER200 +SC0 +EC200 +W400 +H400 +OPART1 povray.pov
povray +SR1 +ER200 +SC201 +EC400 +W400 +H400 +OPART11 povray.pov
povray +SR201 +ER400 +SC0 +EC200 +W400 +H400 +OPART2 povray.pov
povray +SR201 +ER400 +SC201 +EC400 +W400 +H400 +OPART22 povray.pov

需要解决的问题:

  • 编程合并4个图像。

需要考虑的事项:

  • 大部分部分图像不是有效的图像,无法打开。例如,第一个部分图像可以打开,显示一个矩形,其中图像位于左上角,其他所有内容均为黑色。但是其余的图像仅包含有关其区域的信息。我们可以说这些图像已损坏。
  • 输出格式设置为+F,并且可以是PPM、PNG、未压缩和压缩Targa。有效的解决方案可以使用任何这些格式。
  • 专注于如何合并图像。您知道每个部分图像所拥有的矩形。

已尝试的方法:

  • 按照http://povray.tashcorp.net/tutorials/qd_multicpu_render/中描述的方式使用Tail连接图像。它仅适用于部分图像在宽度轴上完整的情况,即如果PART1是一组线条,PART2是另一组线条...而没有列分割。但是我们有列分割。
  • 使用ImageMagick。它无法打开部分图像。它说它们已损坏。
1个回答

0

我找到了如何实现这个目标。

你需要对Povray进行补丁,以便它保存有关PNG文件偏移量的信息。

这是补丁。 https://gist.github.com/721862

你需要下载povray的源代码并应用补丁。要应用补丁,你需要将补丁文件保存在povray-3.6.1/source/patch.patch中,然后执行以下操作:

cp patch.patch povray-3.6.1/source/
cd povray-3.6.1/source/
patch png_pov.cpp patch.patch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接