2016-11-23 77 views
0

我在Windows上使用ImageMagick的命令行定义将几百个彩色矩形添加到空白图像(直方图)。命令的长度超过了8192个字符的限制。我有几百个这样的命令:ImageMagick命令行字符数限制

-fill rgb(188,161,161) -draw "rectangle 1,106 4,19" 

ImageMagick文档说,几个命令可以放在一个文件中,然后读取。测试时,这些命令必须是相同的命令类型,即我会为draw命令创建一个文件,并为fill命令创建一个文件。但是,着色将不起作用,因为正确的fill命令未链接到相关的draw命令。

magick -size 1920x108 xc:white -fill @fill.txt -draw @draw.txt hist.png 

是否有人知道解决方法或任何其他选项?我以为在Windows批处理文件中的命令可能会起作用,但这似乎也受到8192个字符的限制。

+0

这只是一个编程问题(恕我直言)。您可能会更好地寻找ImageMagick特定的开发人员/用户论坛。您所描述的看起来像是一个错误和其他用户会抱怨的事情,因此请检查开发论坛。也许有一个综合选项'-all_cmds'或somesuch?祝你好运! – shellter

回答

0

这里是MS link摘录:

在运行Microsoft Windows XP或更高版本,可以在命令提示符下使用字符串的最大长度 电脑是8191个 字符。在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,可以在命令提示符处使用的字符串的最大长度为2047个字符。

所以基本上,它是命令行的限制,而不是imagemagick。是否有可能将您的任务分成两部分,然后将由这两个步骤生成的两个图像合并到一个生成的图像上?

+0

是的,现在已经分阶段完成了。我认为可能会有一个通用的解决方法,用于命令行。 –

1

您可能会发现Magick矢量图形(MVG)更适合你的需求:

convert -size 1920x1080 xc:gray90 -draw @draw.txt result.png 

enter image description here

该文件draw.txt包含:

fill cyan rectangle 10,10 1800,400 
fill magenta rectangle 10,450 1750,800 
fill yellow rectangle 10,850 1850,1000 

有一些优秀Anthony Thyssen here的示例和可用规范le绘制原始图案here