2011-11-21 6 views
11

Mam więc aplikację Rails 3, używając Spinacza do przycinania obrazów.Jak uzyskać górny obszar obrazu podczas przycinania za pomocą Rails i Paperclip?

Mam ten kod w moim modelu do Foto:

has_attached_file :thumbnail, PAPERCLIP_OPTIONS.merge(
    :styles => {:cropped => '300x250#'}) 

Uzyskany obraz, który jest generowany tworzy 300x250 obraz, jednak uprawa wydaje się zawsze zaczynać dobrą 50px albo tak poniżej górnej części obrazu (to nie jest dobre dla sieci społecznościowych, kiedy odcina się czołówka narodów).

Zrobiłem kilka badań i myślę, że muszę dostarczyć klucz: convert_options, który pokrywa się z: przyciętym stylem. Jednak nie wiem dokładnie, jakie opcje ustawić (-grawitacja, -region, itp.)

Ktoś ma jakieś myśli. Wiem, że są profesjonaliści z Imagemagick; Nie jestem jednym, lol.

Dzięki!

Aktualizacja: znalazłem ten link .. http://forrst.com/posts/Customized_Cropping_with_Paperclip-7g6

Czy to nadal aktualne, czy też ktoś ma lepszy łatwiejszy sposób?

Odpowiedz

23

Oto mój ulubiony sposób, aby to zrobić:

:styles => { :large => "", :medium => "", :thumb => ""}, 
    :convert_options => { 
     :large => "-gravity north -thumbnail 300x300^ -extent 300x300" , 
     :medium => "-gravity north -thumbnail 200x200^ -extent 200x200", 
     :thumb => "-gravity north -thumbnail 100x100^ -extent 100x100" 
    } 

Zauważ, że zamiast # użyć^+ zakres.

Parametry grawitacji są jak na mapie: północ, północny wschód, wschód ...

+2

Jesteś niesamowity! Szukałem tego na zawsze. Na przetwarzanie wszystkich moich obrazów produkcyjnych :( –

+0

Działa świetnie! Dzięki za szczegółowe instrukcje –

+1

Dziękujemy za opublikowanie, jak to zrobić, zamiast pozostawić snicky komentarz o tym, jak jest to udokumentowane w dokumentacji ImageMagick. – Yavin4