【问题标题】:Drop shadows using CarrierWave使用 CarrierWave 投影
【发布时间】:2011-09-29 05:57:00
【问题描述】:

我正在复活一个问题,它是 already asked,但没有实际答案。

我想为使用 CarrierWave 上传的图像自动添加简单的阴影。图像处理是使用 RMagick 还是 MiniMagick 对我来说并不重要。

输入文件类型应该是 CarrierWave 的“白名单”默认值--jpg、jpeg、png 和 gif。保存的文件类型应该是 png(我认为这是必然的)。

谢谢

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    好的,想通了。也许其他人会觉得这很有用。

    在我的 CarrierWave Uploader 中,相关位:

    include CarrierWave::RMagick
    
    process :shadow
    
    def shadow
      manipulate! do |img|
        layers = Magick::ImageList.new
        image = Magick::Image.read(img.filename).first
        shadow = image.clone
        shadow = shadow.shadow(0, 0, 4.0, 0.5)
        shadow = shadow.colorize(1.0, 1.0, 1.0, 'gray25')
        layers << shadow << image
        result = layers.optimize_layers(Magick::MergeLayer)
      end
    end
    

    让 RMagick 工作的关键是使用 optimize_layers 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2018-08-06
      • 2017-07-03
      • 2011-11-21
      相关资源
      最近更新 更多