Объединить частичные изображения Поврая произвольного размера

Исходная ситуация:

Используя 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. Допустимое решение может использовать любой из этих форматов.
  • Фокус на том, как объединить изображения. Вы знаете прямоугольник, который есть у каждого частичного изображения.

Вещи, которые были опробованы:

  • Объединение изображений с помощью Tail, как описано в http://povray.tashcorp.net/tutorials/qd_multicpu_render/. Это работает только в том случае, если частичные изображения завершены на оси ширины, то есть если PART1 - это набор линий, PART2 - другой набор линий... и нет разделения на столбцы. Но у нас есть колонка деления.
  • Используйте ImageMagick. Он не может открыть частичные изображения. Это говорит, что они сломаны.

1 ответ

Решение

Я нашел, как этого можно достичь.

Вам нужно исправить 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
Другие вопросы по тегам