Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在使用Rails、Carrierwave和Minimagick上传时裁剪图像?_Ruby On Rails_Ruby On Rails 3_Minimagick - Fatal编程技术网

Ruby on rails 如何在使用Rails、Carrierwave和Minimagick上传时裁剪图像?

Ruby on rails 如何在使用Rails、Carrierwave和Minimagick上传时裁剪图像?,ruby-on-rails,ruby-on-rails-3,minimagick,Ruby On Rails,Ruby On Rails 3,Minimagick,我读过: 所以我试着: 编码:utf-8 类ProjectPictureUploader

我读过:

所以我试着:

编码:utf-8 类ProjectPictureUploader我理解

version:thumb-do
处理大小调整到适合:[300,无]
加工裁剪:“300x150+0+0”
#工艺调整_和_裁剪:200
结束
私有的
#最简单的方法
def裁剪(几何)
操纵do | img |
图像裁剪(几何)
img
结束
结束
#调整大小并从中心裁剪方形
def RESIGH_和_裁剪(尺寸)
操纵做|想象|
如果图像[:宽度]图像[:高度]
移除=((图像[:宽度]-图像[:高度])/2)。圆形
image.shave(“#{remove}x0”)
结束
image.resize(“#{size}x#{size}”)
形象
结束
结束
从此处调整_和_裁剪的大小:

是的,我在《cropper》中发现了拼写错误,但没有帮助。
# encoding: utf-8

class ProjectPictureUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

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

  version :thumb do
    process :cropper
    # process :crop
    process resize_to_fit: [200, 200]
  end

  def cropper
    manipulate! do |img| 
      # if model.crop_x.present?
        image = MiniMagick::Image.open(current_path)
        crop_w = (image[:width] * 0.8).to_i
        crop_y = (image[:height] * 0.8).to_i
        crop_x = (image[:width] * 0.1).to_i
        crop_y = (image[:height] * 0.1).to_i
      # end
      img = img.crop "#{crop_x}x#{crop_y}+#{crop_w}+#{crop_h}"
      img
    end 
  end

  def crop
    if model.crop_x.present?
      resize_to_limit(700, 700)

      manipulate! do |img|
        x = model.crop_x
        y = model.crop_y
        w = model.crop_w
        h = model.crop_h

        w << 'x' << h << '+' << x << '+' << y

        img.crop(w)
        img
      end
    end
  end

end
class Project < ActiveRecord::Base
  ...
  mount_uploader :picture, ProjectPictureUploader
end