How can I reduce the quality of an uploading image using Paperclip?

后端 未结 4 1979
無奈伤痛
無奈伤痛 2021-01-18 08:26

I am running Ruby on Rails 3 and I would like to reduce the quality of an uploading image using the Paperclip plugin/gem. How can I do that?


A

相关标签:
4条回答
  • 2021-01-18 08:52

    As James says, once you figure out the correct arguments to pass to ImageMagick's convert by experimenting on the command line, you can pass these in to Paperclip through the convert_options option as in James' example.

    If you have multiple arguments, pass them in as an array. Here's an example which I laboured over for a while:

    :convert_options => {:medium => ["-shave", "2x2", "-background", "white", 
                                     "-gravity", "center", "-extent", 
                                     "530x322", "+repage"],
                         :small  => ["-shave", "1x1"] }
    
    0 讨论(0)
  • 2021-01-18 09:00

    Try using convert_options.

    has_attached_file :avatar, 
                      :styles          => { :thumb => '50x50#' },
                      :convert_options => { :thumb => '-quality 80' }
    
    0 讨论(0)
  • 2021-01-18 09:01

    From the paperclip wiki, there's an option for quality:

    class User < ActiveRecord::Base
      has_attached_file :photo,
                        :styles => {
                          :small => {
                            :geometry => '38x38#',
                            :quality => 40,
                            :format => 'JPG'
                          },
                          :medium => {
                            :geometry => '92x92#',
                            :quality => 50
                          }
    end
    
    0 讨论(0)
  • 2021-01-18 09:18

    Except -quality, the -strip option of ImageMagick can remove all profile and other fluff from the image which may reduce more size

    has_attached_file :photo,
      :styles => {
      :thumb => "100x100#" },
      :convert_options => {
      :thumb => "-quality 75 -strip" }
    
    0 讨论(0)
提交回复
热议问题