代码之家  ›  专栏  ›  技术社区  ›  Nerian

合并任意大小的Povray的部分图像

  •  3
  • Nerian  · 技术社区  · 15 年前

    启动情况:

    我使用Povray创建了一个场景的4个局部图像。

    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/ . 它仅在部分图像在宽度轴上完成时才起作用,也就是说,如果第1部分是一组线,第2部分是另一组线…并且没有列划分。但是我们有列划分。
    • 使用ImageMagick。它无法打开部分图像。它说它们坏了。
    1 回复  |  直到 15 年前
        1
  •  0
  •   Nerian    15 年前

    我发现这是怎么做到的。

    您需要修补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