如何裁剪然后使用Paperclip调整大小

fei*_*ngx 3 resize ruby-on-rails crop paperclip

我有一个照片附件,我正在使用Paperclip保存.但是,我想首先处理照片,然后通过裁剪然后调整到最终尺寸:例如我有一张900x900的照片,我想首先将中央裁剪到500x500,然后调整裁剪照片的大小到缩略图大小100x100.

这样做的目的是使缩略图不仅仅是900x900的缩小版本,因为它可能太小甚至无法在照片中显示任何内容.通过裁剪它,我们减少了可以省略的大部分照片,并且仍然有一个有意义的按比例缩小的缩略图.

我知道回形针可以裁剪或调整大小,但是有没有办法将两者结合起来?

编辑:为了澄清,我不打算创建一个裁剪工具,用户可以在其中进行交互并裁剪图像.对于上传的每张照片,我想统一执行裁剪,然后调整大小.

谢谢

llo*_*ick 9

这可能是一种更好的方法,但如果您使用ImageMagick这种方式可以正常工作.

以下内容将首先在500x500的图像中心裁剪,然后抛弃其他所有内容,然后将该新图像调整为100x100.

has_attached_file :image,  
  :styles => { :thumb => "" },
  :convert_options => { 
    :thumb => "-gravity Center -crop 500x500+0+0 +repage -resize 100x100^" },
  :default_style => :thumb
Run Code Online (Sandbox Code Playgroud)


Chr*_*rga 8

刚刚看到这个答案,我想发布这个,因为现在只需使用#选项就可以更轻松地实现所需的结果:

has_attached_file :image,  
  :styles => { :thumb => "100x100#" },
  :default_style => :thumb
Run Code Online (Sandbox Code Playgroud)

  • 你确定吗?我认为OP的要求略有不同. (3认同)