【发布时间】:2020-01-22 18:13:06
【问题描述】:
我想在图像上传到 Cloudinary 之前在 Carrierwave 中使用 RMagick 压缩。
本地 imagemagick 测试表明,一个 37MB 的文件(请不要问为什么它有那么大;))被压缩到只有 4.6 MB 且质量可以接受。
所以现在我想在我的 rails 应用程序中使用与 rmagick 相同的功能,但似乎根本没有进行预处理。上传者上传原始文件,大小为 37MB。
这是我目前拥有的:
class ImageUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
include CarrierWave::RMagick
process :compress => Magick::JPEGCompression
def compress(compression_type)
manipulate! do |img|
img = img.compression(compression_type)
end
img
end
...
我怎样才能实现压缩,并且只有压缩文件上传到 cloudinary?
【问题讨论】:
-
看一些 CarrierWave
process的例子,看起来他们都直接返回了manipulate!的结果,最后没有返回img。这有什么不同吗?
标签: ruby-on-rails carrierwave cloudinary rmagick