2014-10-08 3 views
0

Я использую Paperclip для своего приложения, и изображения не соответствуют размерам, которые я им задал. Я использую paperclip и rmagick и установлен ImageMagik. Когда я побежал где конвертировать я получилСкрепка не правильная калибровка

C:\Program Files\ImageMagick-6.8.9-Q16\convert.exe 
C:\Windows\System32\convert.exe 

Development.rb

Paperclip.options[:command_path] = "C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe" 

Gemfile

gem 'paperclip' 
gem 'rmagick', '~> 2.13.2', :platforms => :ruby 

User.rb

has_attached_file :avatar, styles: { medium: '210x260>', larger: "300x300>", thumb: "100x100>" }, default_url: "/assets/default.png" 
validates_attachment_content_type :avatar, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"] 

вид

<%= image_tag @user.avatar(**style**) %> 

Я тестирую его на двух различных изображений разных размеров, A (первоначально: 960x688) и B (первоначально: 160x160)

A (: большой палец) становится 100x72

B (: палец) становится 100x100

А (: среда) становится 210x151

В (: среда) становится 160x160

A (: больше) становится 300x300

B (: больше) становится 300x300

Я попытался повторно загрузить изображение после того как я изменить размер, но получить те же результаты. Итак, у paperclip проблемы с изображениями разных размеров или есть проблема с моим кодом?

+1

Попробуйте положить # на конце, в отличие от> – Richlewis

+0

Это фиксированный их, но я должен был загрузить изображение снова каждый раз, когда я изменил стиль , Должен ли я продолжать загружать изображения, когда я изменил стиль где-нибудь еще, если мне нужно? – teddybear

ответ

1

Вы должны изменить свой замыкающий символ после ваших размеров размер, так что в вашем случае вам нужно

medium: 210x260# 

В документации четко сказано

Default behavior is to resize the image and maintain aspect ratio (i.e. the :medium version of a 300×150 image will be 200×100). Some commonly used options are: 

trailing '#', thumbnail will be centrally cropped, ensuring the requested dimensions. 
trailing '>', thumbnail will only be modified if it is currently larger requested dimensions. (i.e. the :small thumb for a 120×80 original image will be unchanged) 

для текущего изображения, которые вы можете это в консоли

Image.all.each {|s| s.image.reprocess! } 

После чего любые другие изображения, которые вы загружаете, не будут d перерабатывающий и будет изменен, как вам требуется

Надежда, что помогает

Смежные вопросы