【问题标题】:How can I reduce the quality of an uploading image using Paperclip?如何使用回形针降低上传图像的质量?
【发布时间】:2011-02-14 03:09:45
【问题描述】:

我正在运行 Ruby on Rails 3,我想使用 Paperclip 插件/gem 降低上传图像的质量。 我该怎么做?


此时在我的模型文件中有:

  has_attached_file :avatar, 
    :styles      => {
      :thumb     => ["50x50#",   :jpg],
      :medium    => ["250x250#", :jpg],
      :original  => ["600x600#", :jpg] }

这会将图像转换为.jpg 格式并设置尺寸。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 paperclip


    【解决方案1】:

    尝试使用 convert_options。

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

    【讨论】:

      【解决方案2】:

      paperclip wiki,有一个质量选项:

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

      【讨论】:

      • 我是这样做的,但接缝不起作用:回形针不会降低图像质量!我也尝试重新启动服务器。
      • 它对我有用。确保,如果您在 rails 控制台并运行重新处理,请退出并再次运行 rails 控制台,否则它不会获取模型更改。
      • 此解决方案似乎已被弃用。引用为源的 wiki 链接现已损坏,我以这种方式实现它的努力没有奏效。
      【解决方案3】:

      正如 James 所说,一旦您通过在命令行上进行试验找出要传递给 ImageMagick 的 convert 的正确参数,您就可以通过 convert_options 选项将这些传递给 Paperclip,就像 James 的示例一样。

      如果您有多个参数,请将它们作为数组传递。这是我费力研究了一段时间的例子:

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

      【讨论】:

        【解决方案4】:

        除了-qualityImageMagick-strip 选项可以从图像中删除所有轮廓和其他绒毛,这可能会减小更多尺寸

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-23
          • 2017-08-03
          • 1970-01-01
          • 1970-01-01
          • 2019-11-17
          • 1970-01-01
          • 2016-02-22
          • 2016-06-06
          相关资源
          最近更新 更多