2012-04-24 12 views
6

Esempio I have a image.Rails/Ruby - Quale gemma può creare un'immagine con il testo?

enter image description here

Nel mio controller I esempio hanno @name = "Jon"

Ora voglio creare una nuova immagine come immagine ho ottenuto solo con il nome di "Jon" al centro dell'immagine. Voglio essere in grado di specificare la dimensione del carattere, il colore e la famiglia di caratteri da utilizzare e la posizione del testo.

enter image description here

Quali gemma sono in grado di farlo?

+2

penso di usare ImageMagick - E 'solo un . dolore per installare :( –

+0

Imagemagick via RMagick è probabilmente il (? unico) modo per andare Yea installando tutto correttamente è di solito un dolore, ma c'est la vie –

+0

Qui è la stessa domanda con una risposta un modello:. [http://stackoverflow.com/questions/1704670/ruby-rails-image-processing-libraries][1] [1]: http://stackoverflow.com/questions/1704670/ruby-rails-image-processing-libraries – makaroni4

risposta

8

Una soluzione RMagick di base non è poi così male, 6 linee. Quanto segue ti dà un rettangolo giallo con TEXT al centro. Puoi sperimentare con il carattere e la dimensione del punto. La chiamata al centro è lì perché pensavo che fosse meglio nel mezzo.

require 'RMagick' 

canvas = Magick::Image.new(300, 100){self.background_color = 'yellow'} 
gc = Magick::Draw.new 
gc.pointsize(50) 
gc.text(30,70, "TEXT".center(14)) 

gc.draw(canvas) 
canvas.write('tst.png') 

Ottengo il requisito, è anche possibile passare attraverso. Questo dovrebbe aiutare.

+0

@lulalala ho aggiornato la soluzione di dare un'occhiata a questo. – 123

+0

Sembra provare a implementare questo frammento, con un'installazione di base di imagemagick (tramite brew) e rmagic gem su mac, provoca un errore di carattere: 'impossibile leggere font (null)' – andrhamm

+0

brew install gs dovrebbe aiutare a risolvere quel problema – breakdown1986

2

io sono in grado di commentare, ma nel caso in cui nessun altro è in esecuzione nello stesso problema come @andrhamm [in grado di leggere dei caratteri (null)], installare Ghostscript e riprovare

Problemi correlati