Использование Imagemagick без создания файлов? - PullRequest
4 голосов
/ 01 ноября 2010

Я работаю в Python, чтобы создавать изображения из текста. Я уже работал с PIL, и, честно говоря, его параметры шрифта и выравнивания требуют много работы.

Я могу подпроцессировать Imagemagick, и он отлично работает, за исключением того, что, кажется, всегда нужно записать файл на диск. Я хотел бы обработать процесс создания образа и просто вернуть данные в Python, сохраняя все в памяти.

Я рассмотрел несколько предполагаемых оболочек Python для ImageMagick, но все они безнадежно устарели или не документированы вообще. Даже интенсивный поиск в SO не дает четкого указания на дефактный способ использования ImageMagic с Python. Поэтому я думаю, что переход к подпроцессированию - лучший путь вперед.

Ответы [ 2 ]

7 голосов
/ 01 ноября 2010

convert и другие команды ImageMagick могут выводить данные изображения на стандартный вывод, если вы укажете format:- в качестве файла вывода.Вы можете захватить этот вывод в Python, используя модуль подпроцесса.

Например:

cmd = ["convert", "test.bmp", "jpg:-"]
output_stream = subprocess.Popen(cmd, stdout=subprocess.PIPE).stdout
0 голосов
/ 01 ноября 2010

Это будет намного больше работы, чем передача данных в ImageMagick, но есть несколько решений на основе Pango.Некоторое время назад я использовал pango и pygtk, и я вполне уверен, что вы можете разработать безголовое приложение gtk или gdk для рендеринга текста в pixbuf. * ​​1001 *

Более простое решение может заключаться в использовании привязок python cairo.

Pango работает на довольно низком уровне, поэтому простые вещи могут быть намного более сложными, но качество рендеринга трудно переоценить, и это дает вам много мелкого контроля над макетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...