Ruby: Как мне наложить изображения поверх другого без Imagemagick? - PullRequest
1 голос
/ 13 января 2012

У меня есть изображение размером 100 X 100, и я хочу центрировать его на чистом белом изображении размером 200 X 200.

Как мне это сделать с ImageScience и Ruby или другим пакетом стороннего производителя?А без ImageMagick ни FreeImage?Я знаю, что это очень ограничивает, но эти два довольно глупы для меня, так как оба не работают на моем локальном Mac и моем экземпляре EngineYard Amazon.Я могу использовать FreeType с Ruby на моем Mac, но он не может быть развернут в облаке Amazon.Я не могу установить RMagick на моем Mac, но он может быть установлен на моем облаке Amazon.

Кроме того, я считаю, что ImageMagick должен быть установлен автоматически на каждом компьютере с Linux и Mac.Избавит некоторых людей от многих неприятностей.Такая большая боль за такую ​​маленькую ценность.

Ответы [ 2 ]

6 голосов
/ 19 января 2012

Лучший способ - использовать чистую библиотеку ruby, например http://docs.seattlerb.org/png/ из Seattle.rb или https://github.com/wvanbergen/chunky_png

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

(из примеров Чаки):

# Compose images using alpha blending.
avatar = ChunkyPNG::Image.from_file('avatar.png')
badge  = ChunkyPNG::Image.from_file('no_ie_badge.png')
avatar.compose!(badge, 10, 10)
avatar.save('composited.png', :fast_rgba) # Force the fast saving routine.

Если вам действительно не нужно новое изображение, и оно только для отображения точек заливки, использовать CSS и / или Javascript будет гораздо проще.

0 голосов
/ 19 января 2012

Обойдем вопрос, но пытались ли вы установить ImageMagick на свой Mac через Homebrew? Это так же просто, как просто установить Homebrew и набрать одну команду:

brew install imagemagick

Это должно работать без каких-либо проблем. Homebrew похож на менеджер пакетов, который должен был быть включен по умолчанию в Mac OS X. Я также использую его для установки других пакетов, не включенных по умолчанию, таких как Git, Ack, Graphviz, ...

...