【问题标题】:RMagick Compression with Cloudinary and Carrierwave使用 Cloudinary 和 Carrierwave 进行 RMagick 压缩
【发布时间】: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


【解决方案1】:

您可能想试试我们的incoming transformation。 例如,您可以使用upload widget 上传图像,并在上传预设中添加传入的转换。或使用 SDK。例如:

Cloudinary::Uploader.upload("sample.jpg", 
  :width => 2000, :height => 1000, :crop => :limit, :quality => 70)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    相关资源
    最近更新 更多