2011-01-02 5 views
5

Ho graffetta in Rails (3) lavorare con semplice ritaglio, ad esempio il codice di colpo fa un semplice ritaglio della miniatura:Come si ritaglia un'area specifica con graffetta in Rails (3)?

has_attached_file :image, :styles => { :thumb => "90x90#" }, :default_style => :thumb 

Tuttavia mi chiedevo come si fa a ritagliare una determinata area di un'immagine ; diciamo che hai una coordinata xey da cui iniziare e poi una larghezza e un'altezza del ritaglio.

Come si fa a passare uno stile complesso come questo?

risposta

14

check {size}{offset} combinazione qui:

http://www.imagemagick.org/script/command-line-processing.php#geometry

Esempio dove i numeri sono la larghezza, l'altezza, x, y:

90x90+40+30 

Paperclip analizza la stringa opzioni di stile ed è limitata a ridimensionamento e ritaglio. Le opzioni complesse di ImageMagick funzionano se vengono passate come :convert_options, perché vengono aggiunte al comando convert senza modifiche.

has_attached_file :image, 
    :styles => { :thumb => "" }, 
    :convert_options => { :thumb => "-crop 90x90+40+30" }, 
    :default_style => :thumb 

Link alla miniatura del codice sorgente del processore e la pagina wiki:

+0

che cambia solo il dimensione, non s ampio il xey. – Smickie

+0

Aggiunte altre informazioni. – Heikki

+1

Questa è una soluzione molto più elegante di quella con più voti. Questo è il modo per farlo. – Smickie