0

それで、かなり普通の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. スケーリング後に正確な寸法に収まらない場合は、画像をトリミングします

それを達成するためのベストプラクティスは何ですか?

4

1 に答える 1

1

私はまったく同じ問題を抱えていました。

基本的に、ファイルが最初にアップロードされたときに、モデルに元の画像の寸法を保存する必要があります。これらを jCrop で使用して、トリミング プロセスを制御できます。

この関数としてアップロードされた私の搬送波

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

モデル、アップローダー、およびビューでかなり多くのことを行う必要があります。

完全な記事は、以下のリンクの私の Web サイトにあります。

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

于 2013-02-25T15:58:58.997 に答える