回形针 - 按图像比例进行条件裁剪

Posted

技术标签:

【中文标题】回形针 - 按图像比例进行条件裁剪【英文标题】:Paperclip - Conditional cropping by image ratio 【发布时间】:2014-07-02 07:27:38 【问题描述】:

我正在使用带有 ImageMagik 的回形针。我的问题是,只有当它们的比例小于 X 时,我才能将回形针裁剪图像制作成一定的尺寸。

我正在寻找的是将所有图像裁剪到一定的尺寸,除了高大的图像,我不想裁剪,只需缩放。

我目前的设置是:"X425"

我想要:"615X425#" 用于非高图像,"X425" 用于高\宽图像。

谢谢!乌里

【问题讨论】:

【参考方案1】:

条件格式

不久前,我们想使用conditional styling in Paperclip,然后想出了this 和since found this:

#app/models/attachment.rb
Class Attachment < ActiveRecord::Base

    has_attached_file :image,
        styles: Proc.new  |instance| instance.resize 

    private

    def resize     
        geo = Paperclip::Geometry.from_file(photo.to_file(:original))

        ratio = geo.width/geo.height  

        min_width  = 142
        min_height = 119

        if ratio > 1
           # Horizontal Image
           final_height = min_height
           final_width  = final_height * ratio
           "#final_width.roundx#final_height.round!"
        else
           # Vertical Image
           final_width  = min_width
           final_height = final_width * ratio
          "#final_height.roundx#final_width.round!"
        end
  end  
end

我从this answer获取了resize代码

【讨论】:

哇!看起来很棒!非常感谢

以上是关于回形针 - 按图像比例进行条件裁剪的主要内容,如果未能解决你的问题,请参考以下文章

Rails:使用 Jcrop 和回形针裁剪图像后出现重定向问题

在 Rails 应用程序中上传和裁剪图像的最佳方式是啥?

裁剪图像后,S3 不会存储所有图像尺寸

计算图像裁剪比例

ps怎么按比例裁剪图片

libVLC 视频裁剪