Создавайте статические графические файлы (png, gif, jpg) с помощью Ruby или Python

Я хотел бы создать графическое изображение на лету на основе пользовательского ввода, а затем представить это изображение в виде файла PNG (или jpg или gif, если необходимо, но PNG предпочтительнее).

На самом деле это для астрологического приложения; то, что я хотел бы сделать, это создать диаграмму в формате PNG для отображения.

Python или Ruby подойдут; на самом деле доступная библиотека может определять язык, который я использую.

Обновлять

Вот пример изображения:
Пример графического гороскопа


person Charlie Martin    schedule 24.03.2009    source источник


Ответы (6)


Я нашел Gruff простым в использовании, когда я был на вашем месте. Бесстыдный плагин для блога.

person Gishu    schedule 24.03.2009
comment
Грубая ссылка мертва. - person grepsedawk; 19.06.2016

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

Например, если все изображения одинаковы, вы можете создать базовое изображение SVG с помощью Inkscape, затем отредактировать его программно из Python или Ruby (либо путем редактирования текста, либо с помощью библиотеки XML) и, наконец, экспортировать его в PNG.


Обновление. Увидев пример изображения, я думаю, что SVG был бы наиболее удобным выбором. Изображение SVG представляет собой XML-файл, который в основном говорит: «Нарисуйте круг отсюда сюда, напишите там строку «13º52»» и т. д. Вы можете нарисовать уникальную базовую диаграмму в Inkscape, а ваша программа просто добавит линии и символы для каждый случай. Наконец, вы экспортируете в PNG.

Преимущества: вам легче рисовать, изображение полностью масштабируется, вы можете изменить стиль, просто отредактировав свойство («сделать все строки шире», «изменить весь текст на Arial», «окрасить фон в синий цвет»), вы можете экспортировать в любой формат без потери качества, и я думаю, что это более удобно.

person Roberto Bonvallet    schedule 24.03.2009
comment
Ссылка на графику выше. Что касается векторных форматов, я не уверен, насколько они переносимы; Я не ожидаю, что моя целевая аудитория будет очень техничной. - person Charlie Martin; 24.03.2009
comment
Векторные форматы упрощают рисование, и вы можете предоставить своим пользователям конечное изображение, экспортированное в формате PNG. - person Roberto Bonvallet; 24.03.2009

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

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

person kquinn    schedule 24.03.2009
comment
+1: сделал это на прошлой неделе. Работает хорошо - создает графики на лету. - person S.Lott; 24.03.2009

Для Python I наиболее распространенным выбором для форматов изображений является PIL, а затем Pycairo для векторных форматов. Они могут работать вместе, например, в этой записи кулинарной книги использовать изображения PIL для поверхностей Pycairo.

person Van Gale    schedule 24.03.2009

Посмотрите на Ruby-GD2 или привязку ImageMagick или GraphicsMagick.

person greyfade    schedule 24.03.2009

когда я выполнял задание по Python (http://www.pythonchallenge.com/), я использовал Python Библиотека изображений (http://www.pythonware.com/library/pil/)

person bayda    schedule 24.03.2009