2009-11-09 11 views
14

Buenos amigos de stackoverflow, estoy aquí hoy para obtener orientación sobre el procesamiento/manipulación de imágenes usando Ruby en un entorno de Rails. Estoy creando avisos publicitarios dinámicos sobre la marcha que incluirán principalmente texto (si no completamente). Es bastante simple con solo una línea o dos, pero me gustaría la opción de ajustar la fuente, el color del texto, el tamaño del texto, etc.Bibliotecas de procesamiento de imágenes Ruby/Rails

¿Qué bibliotecas recomiendas para este tipo de tarea?

He leído un poco en rMagick y veo muchas quejas sobre problemas de memoria y la falta de funciones de representación de texto. No veo muchos proyectos activos alternativos.

Gracias!

Editar: Tuve la oportunidad de perder el tiempo con RMagick y, aunque su biblioteca tiene todas las funciones, es muy deficiente en el departamento de texto. Una característica que no puedo usar es espacios sin interrupción. Estoy imprimiendo un número de teléfono en mi texto y realmente no tiene sentido tener el código de área en una línea diferente que el resto del número.

Estoy eligiendo RMagick como la mejor solución por el momento, porque tiene todas las funciones y está desarrollado activamente, pero de ninguna manera es una buena solución .

+0

Similar a - http: // stackoverflow.com/questions/676159/create-static-graphics-files-png-gif-jpg-using-ruby-or-python –

+0

Javid: No, no lo es. –

Respuesta

5

escribí algo como lo siguiente:

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") 

Cuál debería ser bastante fácil de seguir. También eche un vistazo a the documentation. Si bien no está completamente diseñado a la perfección, prácticamente todo está allí.

1

La biblioteca ImageScience está hecho para personas que odian el uso de memoria del pobre RMagick, etc. Yo lo uso como un procesador back-end para el attachment_fu plug-in, lo que hace que sea fácil hacer un modelo de imagen en Rails.

+3

Imagescience es más adecuado para cambiar el tamaño/recortar imágenes, no generando como él pidió. –

2

Puede adaptar sus necesidades de procesamiento de imágenes a la versión de línea de comandos de ImageMagick en lugar de utilizar las vinculaciones de rMagick Ruby.

4

Recientemente he estado experimentando con la creación de tablas/gráficos a partir de conjuntos de datos usando Ruby. Cuando no pude encontrar ninguna biblioteca o gema que realmente hiciera lo que quería, comencé a juguetear con los gráficos SVG y descubrí que en realidad son bastante simples de crear. El formato SVG es simplemente XML de texto sin formato. Construí una imagen SVG en Inkscape, la guardé en un archivo SVG simple y mi script Ruby usa ese archivo como plantilla (actualizo dinámicamente algunos elementos de línea y varias etiquetas de texto y dejo la estructura del archivo intacta). SVG le ofrece todo tipo de opciones de fuente (como CSS o HTML).

Thesetwo tutoriales le dan un vistazo rápido a SVG y cómo puede crear una imagen con bastante rapidez con cualquier aplicación o idioma que pueda escribir en un archivo de texto. Ruby puede usar el antiguo puts para construir un archivo SVG, o puede dejar que la gema 'constructor' le dé formato.

2

¿Está limitado a MRI Ruby? Si hay alguna manera de obtener acceso a una instancia de jRuby (tal vez en una pila EC2, por ejemplo), puede hacer uso de la maravillosa biblioteca Processing. Un proyecto en el que trabajé antes hizo algo similar con Processing a través de jRuby, realmente es una combinación bastante potente.

Cuestiones relacionadas