Tôi đã đọc:Làm thế nào để cắt hình ảnh khi tải lên bằng Rails, Carrierwave và Minimagick?
Và vì vậy tôi cố gắng:
# 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
Sau đó, tôi sử dụng croppe r: biến không xác định địa phương hoặc phương pháp 'crop_h 'cho /uploads/tmp/20121006-2227-4220-9621/thumb_Koala.jpg:#
Sau đó cây trồng: không xác định phương pháp 'crop_x' cho #
mô hình:
class Project < ActiveRecord::Base
...
mount_uploader :picture, ProjectPictureUploader
end
Rails 3.2, Win7,
chuyển đổi -version Version: ImageMagick 6.7.9-4 2012/09/08 Q16 http://www.imagemagick.org Bản quyền: Bản quyền (C) 1999-2012 ImageMagick Studio LLC Các tính năng: OpenMP
Yeah, tôi thấy typo trong #cropper, nhưng nó đã không giúp đỡ. – Leonid