什么';这有什么不对';外汇和x27;ImageMagick中的表达式?
我试图用ImageMagick去除一堆图像上的背景。ImageMagick网站记录了执行此操作的方法。他们还方便地编写了一个shell脚本,其中包含了这些方法的首选组合 不过我在脚本中遇到了一个错误。当你调用脚本时,你会给出一些模糊参数,如果你知道的话,还会加上特定的背景色。传递显式背景色,如什么';这有什么不对';外汇和x27;ImageMagick中的表达式?,imagemagick,Imagemagick,我试图用ImageMagick去除一堆图像上的背景。ImageMagick网站记录了执行此操作的方法。他们还方便地编写了一个shell脚本,其中包含了这些方法的首选组合 不过我在脚本中遇到了一个错误。当你调用脚本时,你会给出一些模糊参数,如果你知道的话,还会加上特定的背景色。传递显式背景色,如RGB(37188111),将导致最终命令的以下片段: ( +clone -sparse-color voronoi 0,0,RGB(37,188,111) ) …而且效果很好。但是,如果未传递bgcol
RGB(37188111)
,将导致最终命令的以下片段:
( +clone -sparse-color voronoi 0,0,RGB(37,188,111) )
…而且效果很好。但是,如果未传递bgcolor,则表达式如下所示:
( +clone -sparse-color voronoi 0,0,%[fx:p{0,0}] )
它失败时会显示一条消息,说明-sparse color
的参数数目错误。我可以将其更改为不同的功能,它可以工作:
( +clone -sparse-color voronoi 0,0,%[pixel:p{0,0}] )
我对ImageMagick了解不够,不知道
fx
函数在做什么,也不知道pixel
是否是可以接受的替代品。我想它是想抓住坐标0,0处的颜色来猜测背景色,但不是很确定。语法0,0,%[fx:p{0,0}]
正确吗?-fx
是一个允许您使用数学表达式或IM特定表达式应用于像素的运算符:-fx“表达式”
只有在ImageMagick版本6.2.10及更高版本中才引入了它。对于括在大括号中的特殊情况,您可以在其中使用转义序列“%[fx:…]”。因此,这两种方法在v6.2.10之后都应该有效:
%[fx:expression]
%[pixel:expression]
至于你的问题:是的,“像素是可以接受的fx替代品”
表达式p{0,0}
的意思是:“返回当前图像中左上角像素的颜色值”
因此,请检查您的ImageMagick版本:
convert -version
至于为什么完整表达式因-sparse color
的“参数数目错误”而失败:
voronoi
是否属于-sparse color
支持的方法之一:
convert-列出稀疏颜色
(我想是的,否则您可能会看到不同的错误消息。)-sparse color
的一般语法记录如下:
-稀疏颜色方法“x,y颜色…”
这建议您可以使用额外的引号来创建稀疏颜色,以识别正确数量的参数。怎么样
(+clone-sparse-color-voronoi'0,0%[fx:p{0,0}])
?我遇到了一个问题,尽管使用了v7+,但我的fx表达式也无法工作。我将命令从
convert
更改为magick
,然后它开始工作。希望这能帮助其他人避免头痛。您安装了哪个版本的ImageMagick?版本:ImageMagick 6.6.8-1 2012-05-20 Q16--我会在下面查看您的建议,谢谢