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

时间:2014-07-02 07:27:38

标签: ruby-on-rails image paperclip crop

我在PaperMagik上使用回形针。我的问题是,如果它们的比例小于X,我怎么能将回形针裁剪成一定的尺寸。

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

我目前的设置是:"X425"

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

谢谢! URI

1 个答案:

答案 0 :(得分:2)

条件格式

前段时间,我们想使用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.round}x#{final_height.round}!"
        else
           # Vertical Image
           final_width  = min_width
           final_height = final_width * ratio
          "#{final_height.round}x#{final_width.round}!"
        end
  end  
end

我从this answer

获取了resize代码