2013-02-22 79 views
0

所以我得到了我的Carrierwave上传,这是非常正常的:Carrierwave - 动态高度/宽度和种植

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. 如果缩放后​​不适合确切的尺寸,则裁剪图像

要完成该操作,最佳实践是什么?

回答

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