【问题标题】:CarrierWave resize_and_pad method always uses whiteCarrierWave resize_and_pad 方法总是使用白色
【发布时间】:2013-07-23 01:20:25
【问题描述】:

我已经为此苦苦思索了好久。我有一个上传到 AWS 的截图上传器类。问题在于resize_and_pad,因为图像已正确调整大小和填充,但是无论我输入什么十六进制代码,背景总是用白色填充。

如何让填充变为黑色而不是白色?

class ScreenshotUploader < CarrierWave::Uploader::Base
  require 'carrierwave/processing/rmagick'
    include CarrierWave::RMagick
    process resize_and_pad: [200, 100, "#000000"]
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 imagemagick carrierwave


    【解决方案1】:

    resize_and_pad 有 4 个参数,你缺少一个参数:重力。

    处理 resize_and_pad : [200,100,"#000000",Magick::CenterGravity]

    应该这样做。

    这是官方文档:link

    【讨论】:

    • 嗨 rb,我之前尝试过添加它,但它仍然是白色的。
    • 它对我有用。我会检查 image-magick 是否真的填充了图像。如果图像很小并且不需要填充,它不会用给定的颜色填充它。尝试上传宽高比大于 200x100 的图片。
    【解决方案2】:

    我不得不切换到 Mini_Magick 库而不是 Rmagick,一切都按预期工作。

    require 'carrierwave/processing/mini_magick'
    class ScreenshotUploader < CarrierWave::Uploader::Base
       include CarrierWave::MiniMagick
       process resize_and_pad: [200, 100, "#000", "Center"]
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多