Есть ли хорошая библиотека Python для генерации и рендеринга текста в формате изображения? - PullRequest
1 голос
/ 02 марта 2011

Я разрабатываю приложение, подобное CMS, где пользователь должен иметь возможность создавать меню так, как он хочет. В идеале каждый объект меню - это не текст с фоном, а изображение с текстом. Я предполагаю это любым из этих двух способов:

a) Рендеринг шрифта в / нескольких файлах изображений с каждой буквой и сценарий, который дал слово, дало бы мне или последовательность изображений, чтобы соединить вместе, или один файл изображения с комбинацией всех букв. Я понимаю, что это можно сделать вручную, но я чувствую, что, вероятно, есть библиотека, которая поможет с этим.

b) С некоторой библиотекой изображений, которая могла бы отображать текст с несколькими эффектами смешения, такими как цвет градиента, тени, свечение и т. Д. Хотя я считаю, что это немного сложнее, возможно, есть что-то, что удовлетворяет эту потребность.

Какие-нибудь советы по любой библиотеке, которая делает это или что-то подобное?

Заранее спасибо!

Bruno

Ответы [ 5 ]

2 голосов
/ 02 марта 2011

Хотя в настоящее время я согласен использовать веб-шрифты и CSS, пару лет назад я столкнулся с этой проблемой и собрал небольшой проект, который генерировал бы текст в шаблонном изображении в файле, в соответствии с переданным URL-адресом. параметры.

Проект по-прежнему публикуется здесь: https://bitbucket.org/jsbueno/dynabutton - он предназначен для работы в качестве CGI-скрипта, но может быть легко адаптирован для работы с более эффективным сервером (я бы также рекомендовал некоторые настройки безопасности , если вы размещаете это онлайн). Вы также можете использовать его для генерации всех ваших изображений с помощью серверного скрипта и просто разместить полученные файлы изображений в сети.

(внизу используется PIL)

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

2 голосов
/ 02 марта 2011

Мы используем Imagemagick.

http://www.imagemagick.org/Usage/text/#attributes

Это сделает простую кнопку с текстом:

convert -background white -fill dodgerblue  -font Candice -strokewidth 2  -stroke blue   -undercolor lightblue  -size 165x70 -gravity center label:Anthony     label_color.gif

Обернуть это в модуль Python просто.

0 голосов
/ 02 марта 2011

Что ж, с современными методами CSS, проблема несовпадения шрифтов на стороне клиента в наши дни является меньшей проблемой.Тем не менее, существует потребность в инструментах преобразования текста в изображения.

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

0 голосов
/ 02 марта 2011

На самом деле у pygtk также есть pango renderer .

0 голосов
/ 02 марта 2011

Проверьте pycairo , привязки для пакета рендеринга cairo. Может отображать как текст, так и графику.

...