2011-02-14 5 views
6

Ruby on Rails 3를 실행 중이며 Paperclip 플러그인/gem을 사용하여 업로드하는 이미지의 품질을 떨어 뜨리고 싶습니다. 어떻게하면됩니까? 내 모델 파일에이 때Paperclip을 사용하여 업로드하는 이미지의 품질을 어떻게 줄일 수 있습니까?


나는이 :

.jpg 형식으로 이미지를 변환하고 크기를 설정합니다
has_attached_file :avatar, 
    :styles  => { 
     :thumb  => ["50x50#", :jpg], 
     :medium => ["250x250#", :jpg], 
     :original => ["600x600#", :jpg] } 

. paperclip wiki에서

답변

16

시도가 convert_options를 사용하여. 당신은 ImageMagick과의 convert 명령 행에서 실험에 의해 전달하는 올바른 인수를 파악하면 제임스

has_attached_file :avatar, 
        :styles   => { :thumb => '50x50#' }, 
        :convert_options => { :thumb => '-quality 80' } 
+0

완벽하게 작동합니다! – flunder

12

, 품질에 대한 옵션이있다 :

class User < ActiveRecord::Base 
    has_attached_file :photo, 
        :styles => { 
         :small => { 
         :geometry => '38x38#', 
         :quality => 40, 
         :format => 'JPG' 
         }, 
         :medium => { 
         :geometry => '92x92#', 
         :quality => 50 
         } 
end 
+1

더 크기를 줄일 수있는 이미지의 모든 프로필과 다른 보풀을 제거 할 수 있습니다 ImageMagick-strip 옵션 그,하지만 그 솔기가 작동하지 않습니다 : 클립은 이미지 품질을 감소시키지 않습니다! 나는 또한 서버를 다시 시작하려고 시도했다. – user502052

+0

그것은 나를 위해 일했습니다. 레일 콘솔에 있고 재 처리를 실행 중이면 종료하고 레일스 콘솔을 다시 실행해야합니다. 그렇지 않으면 모델 변경 사항을 적용하지 않기 때문입니다. –

+0

이 솔루션은 더 이상 사용되지 않는 것으로 보입니다. 근원지로 인용 된 위키 링크가 깨 졌으므로 이런 식으로 구현하려는 노력이 효과가 없었습니다. – jonesbp

3

는 말한다, 당신은 제임스의 예에서와 같이 convert_options 옵션을 통해 클립하려면 다음을 전달할 수 있습니다.

인수가 여러 개인 경우 배열로 전달하십시오. 여기에 내가 잠시 동안 수고 예는 다음과 같습니다

-quality 제외
:convert_options => {:medium => ["-shave", "2x2", "-background", "white", 
           "-gravity", "center", "-extent", 
           "530x322", "+repage"], 
        :small => ["-shave", "1x1"] } 
0

, 내가 좋아 만든

has_attached_file :photo, 
    :styles => { 
    :thumb => "100x100#" }, 
    :convert_options => { 
    :thumb => "-quality 75 -strip" } 
관련 문제