rails paperclip - 更改上传图像的宽高比

时间:2014-04-15 09:09:06

标签: ruby-on-rails

使用回形针,如何更改上传图像的纵横比。

哪个更容易?使用jcrop还是回形针?

我认为paperclip会很好但不确定在哪里/如何保留配置选项。

2 个答案:

答案 0 :(得分:1)

对于回形针,您可以通过直接在模型中指定转换选项来轻松完成此操作。例如:

has_attached_file :photo,
                  :preserve_files => true,
                  :styles => { :medium => "800x800>",
                               :small => "300x300>",
                               :thumb => "150x150>" },
                  :convert_options => { :medium => "-quality 70 -interlace Plane -strip",
                                        :small => "-quality 70 -interlace Plane -strip",
                                        :thumb => "-quality 70 -interlace Plane -strip" },
                  :default_url => "/images/missing.png"

你可以使用任何ImageMagick的转换选项。

所有支持的选项均为here

BTW:如果你想在后台处理它而不是将它添加到你的Gemfile中:

gem 'delayed_job'
gem 'delayed_job_active_record'
gem 'delayed_paperclip'
gem 'daemons'

这是模特:

process_in_background :photo, queue: 'paperclip_processing'

运行/停止守护程序:

RAILS_ENV=production bin/delayed_job -n 2 start
RAILS_ENV=production bin/delayed_job stop

要查看进度并管理队列,这很棒:

gem 'delayed_job_web'

享受。

答案 1 :(得分:0)

You'll need to use ImageMagick让Paperclip裁剪图像。回形针仅处理上传过程 - 它不会为您裁剪或存储图像


我建议您查看如何使用Paperclip with ImageMagick,然后您必须找到一种方法来填充您的模型' ImageMagick commandsstyles选项:

has_attached_file :image, styles: { medium: "[[imagemagick code]]" }

ImageMagick change aspect ratio without scaling the image