2

我正在尝试使用 MiniMagick 制作一个部分不透明的 png,但我猜它真正归结为使用“-evaluate”的语法

这适用于终端:

convert input.jpg -alpha on -channel a -evaluate set 25% output.png 

但我不太明白如何把它变成 minimagick 代码

这是我正在尝试的(最新排列):

require 'mini_magick'

img = MiniMagick::Image.open('input.jpg')
img.combine_options do |mogrify|
    mogrify.alpha 'on'
    mogrify.channel 'a'
    mogrify.evaluate 'set', '25%'

    puts mogrify.inspect
end
img.write('output.png')

inspect输出显示@args@args=["-alpha", "\"on\"", "-channel", "\"a\"", "-evaluate", "\"set\"", "\"25%\""]

没有错误消息,但我得到的只是 input.jpg 的相同副本

4

1 回答 1

1

除了您还需要让 minimagick 知道您正在以 PNG 格式输出时,您几乎已经完成了:

    img.format('png')

试试这个:

    require 'mini_magick'

    img = MiniMagick::Image.open('input.jpg')
    img.format('png')
    img.combine_options do |mogrify|
        mogrify.alpha 'on'
        mogrify.channel 'a'
        mogrify.evaluate 'set', '25%'
    end
    img.write('output.png')
于 2016-03-21T01:02:09.487 回答