我有一个 CarrierWave ImageUploader,它创建了几个版本的原始图像,需要根据我的模型中的值(crop_x、crop_y、crop_w 和crop_h)进行裁剪。
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
...
version :t do
process :cropper
process :resize_to_fill => [75, 75]
end
...
def cropper
manipulate! do |img|
img = img.crop "#{model.crop_x}x#{model.crop_y}+#{model.crop_w}+#{model.crop_h}"
img
end
end
end
我遇到的问题是,如果我们没有任何设置但我不知道将这个逻辑放在哪里,我需要计算一些默认的裁剪值。我尝试将它放在我的照片模型(上传器安装到)中的 before_validation 中,但这似乎是在裁剪函数执行后调用的。我在想它要么需要在 ImageUploader 文件中,要么需要在创建拇指之前发生的一些回调中。