2016-11-23 81 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