Слияние частичных изображений поврая произвольного размера - PullRequest
3 голосов
/ 28 ноября 2010

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

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

То, что было опробовано:

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

1 Ответ

0 голосов
/ 30 ноября 2010

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

Вам необходимо установить 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
...