gpt4 book ai didi

ruby-on-rails - 载波裁剪

转载 作者:数据小太阳 更新时间:2023-10-29 07:44:28 24 4
gpt4 key购买 nike

我有一个 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 中的我的照片模型( uploader 安装到其中)中,但这似乎是在执行裁剪函数后调用的。我在想它要么需要在 ImageUploader 文件中,要么在创建缩略图之前发生的某个回调中。

最佳答案

你可以这样做:

process :cropper

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

我正在运行与我的一个应用程序中的代码等效的代码。

关于ruby-on-rails - 载波裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6757359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com