【发布时间】:2018-08-31 20:08:06
【问题描述】:
我正在使用 CarrierWave 为我上传的图像添加版本。 resize_to_fit 正在调整图像大小以适应指定尺寸,同时保留原始纵横比。如何在不保留原始纵横比或裁剪它们的情况下调整图像大小?
【问题讨论】:
标签: ruby-on-rails ruby carrierwave rmagick minimagick
我正在使用 CarrierWave 为我上传的图像添加版本。 resize_to_fit 正在调整图像大小以适应指定尺寸,同时保留原始纵横比。如何在不保留原始纵横比或裁剪它们的情况下调整图像大小?
【问题讨论】:
标签: ruby-on-rails ruby carrierwave rmagick minimagick
您需要使用 Carrierwave 的manipulate! 方法在上传器中定义自定义处理方法。这是我刚刚测试过的一个例子:
class Uploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
process :force_resize => [160, 160]
def force_resize(width, height)
manipulate! do |img|
img.resize("#{width}x#{height}!")
img
end
end
end
这会将图像大小调整为 160x160 像素,而不考虑纵横比(注意 resize 参数末尾的感叹号)。
【讨论】: