Carrierwave - 动态高度/宽度和裁剪

时间:2013-02-22 15:37:26

标签: ruby-on-rails carrierwave

所以我得到了Carrierwave Uploader,这很正常:

class ThumbFileUploader < CarrierWave::Uploader::Base

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  process :resize_to_limit => [2000, 480]
end

在我的模型中,我得到了:

article.remote_thumbnail_url = article.picture_url

我想做的是

  1. 告诉carrierwave用于从我的模型中缩放的尺寸
  2. 如果图像在缩放后不符合确切尺寸,则裁剪图像
  3. 实现这一目标的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题。

首次上传文件时,您基本上需要让模型存储原始图像尺寸。然后,您可以将它们与jCrop一起使用来控制裁剪过程。

我的载波上传为此功能

  def get_geometry
    if (@file)
      img = ::Magick::Image::read(@file.file).first
      @geometry = [ img.columns, img.rows ]
    end
  end

你必须在模型,上传者和你的观点中做很多事情。

我的网站上的完整文章在下面的链接中。

http://mark.stratmann.me/content_items/image-cropping-with-rails-3-2-carrierwave-bootstrap-modals-jcrop