Библиотеки обработки изображений Ruby/Rails
Хорошие друзья stackoverflow, я здесь сегодня для руководства относительно обработки изображений/манипуляции с использованием Ruby в среде Rails. Я создаю динамические баннерные объявления "на лету", которые будут отображаться в основном (если не полностью). Это довольно просто с одной строкой или двумя, но мне бы хотелось настроить шрифт, цвет текста, размер текста и т.д.
Какие библиотеки вы рекомендуете для такого рода задач?
Я немного читал в rMagick, и я вижу много жалоб на проблемы с памятью и отсутствие функций рендеринга текста. Я не вижу много альтернативных активных проектов.
Спасибо!
Изменить: У меня появился шанс пообщаться с RMagick, и, хотя библиотека полностью заполнена, в текстовом отделе ее серьезно не хватает. Одна из возможностей, которую я не могу использовать, - это неразрывные пробелы. Я печатаю номер телефона в своем тексте, и действительно не имеет смысла иметь код области на другой строке, чем остальная часть номера.
Я выбираю RMagick как лучшее решение на данный момент, потому что оно полнофункционально и активно развивается, но это отнюдь не хорошее решение.
Ответы
Ответ 1
Я написал что-то вроде следующего:
require 'rubygems'
require 'RMagick'
include Magick
image = Image.new(50, 50) {
self.background_color = "white"
}
text = Draw.new
text.annotate(image, 0,0,0,40, 'Named Colors') {
self.fill = 'black'
self.pointsize = 32
}
image.write("image.png")
Который должен быть достаточно легким, чтобы следовать. Также посмотрите документацию. Хотя он не совсем доведен до совершенства, он почти все там.
Ответ 2
Недавно я экспериментировал с созданием диаграмм/графиков из наборов данных с использованием Ruby. Когда я не смог найти какие-либо библиотеки или драгоценные камни, которые действительно делали то, что я хотел, я начал заниматься рисованием SVG, и я обнаружил, что их на самом деле довольно просто создать. Формат SVG - это просто текстовый XML. Я построил SVG-образ в Inkscape, сохранил его в простой SVG файл, а мой Ruby script использует этот файл в качестве шаблона (я динамически обновляю несколько элементов строки и несколько текстовых меток и оставляю структуру файла неповрежденной). SVG предоставляет вам всевозможные варианты шрифтов (например, CSS или HTML).
Эти два учебника дают вам быстрый посмотрите на SVG и как можно быстро создать изображение с помощью любого приложения или языка, который может писать в текстовый файл. Ruby может использовать простой старый puts
для создания SVG файла, или вы можете позволить gem-builder сделать форматирование для вас.
Ответ 3
Вы можете обработать ваши потребности в обработке изображений в командной строке версии ImageMagick вместо использования привязок rMagick Ruby.
Ответ 4
Вы ограничены только MRI Ruby? Если вы каким-либо образом можете получить доступ к экземпляру jRuby (например, например, в стеке EC2), вы можете использовать замечательный Processing библиотека. Проект, над которым я работал раньше, сделал что-то подобное с обработкой через jRuby, это действительно очень мощная комбинация.
Ответ 5
Библиотека ImageScience предназначена для людей, которые ненавидят плохое использование памяти rMagick и т.д. Я использую ее как серверный процессор для attachment_fu, что упрощает создание модели изображения в Rails.
Ответ 6
Вы можете использовать mini-magick для работы с ImageMagick в Ruby.