我想在将图像上传到Cloudinary之前在Carrierwave中使用RMagick压缩。
[本地imagemagick测试表明,一个37MB的文件(请不要问它为什么有这么大的大小;))被压缩到只有4,6 MB的文件质量是可以接受的。
所以现在我想在rmagick的rails应用程序中使用相同的功能,但是似乎根本没有进行预处理。上传器上传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?
您可能想尝试我们的incoming transformation。例如,您可以使用upload widget上传图像并将传入的转换添加到上传预设中。或使用SDK。例如:
Cloudinary::Uploader.upload("sample.jpg",
:width => 2000, :height => 1000, :crop => :limit, :quality => 70)