鉴于源图像input.png
,我想将#292929
添加到according to the ImageMagick guides的颜色叠加,我们可以使用以下命令:生成output.png
:
convert input.png \( +clone -fill '#292929' -colorize 100 \) -compose overlay -composite output.png
使用minimagick时,似乎应该可以使用ruby中的以下一系列指令进行复制(假设所有依赖项都存在):
#!/usr/bin/env ruby
require 'mini_magick'
MiniMagick.configure do |config|
config.debug = true
end
MiniMagick::Tool::Convert.new do |convert|
convert << 'input.png'
convert.stack do |stack|
stack.clone.+
stack.fill('#292929')
stack.colorize(100)
end
convert.compose('overlay')
convert.composite('output.png')
end
然而,由minimagick引发的命令很奇怪,结果是错误:
[0.03s] convert input.png ( -fill #292929 -colorize 100 ) -compose overlay -composite output.png
/Users/alex/.rvm/gems/ruby-2.1.0/gems/mini_magick-4.3.6/lib/mini_magick/shell.rb:18:in `run': `convert input.png ( -fill #292929 -colorize 100 ) -compose overlay -composite output.png` failed with error: (MiniMagick::Error)
convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3230.
from /Users/alex/.rvm/gems/ruby-2.1.0/gems/mini_magick-4.3.6/lib/mini_magick/tool.rb:79:in `call'
from /Users/alex/.rvm/gems/ruby-2.1.0/gems/mini_magick-4.3.6/lib/mini_magick/tool.rb:40:in `new'
from ./convert.rb:9:in `<main>'
在parens之间没有添加+clone
,这有助于解释错误,但仍然没有解释为什么它没有添加到parens之间,给出this文档。
我不确定这是minimagick中的错误,还是我对文档的误解,但这基本上就是它的主旨。
答案 0 :(得分:0)
实际上是minimagick中的bug。
与此同时,建议的临时解决方法是:
#!/usr/bin/env ruby
require 'mini_magick'
MiniMagick.configure do |config|
config.debug = true
end
MiniMagick::Tool::Convert.new do |convert|
convert << 'input.png'
convert.stack do |stack|
stack << '+clone'
stack.fill('#292929')
stack.colorize(100)
end
convert.compose('overlay')
convert.composite('output.png')
end