2017-08-09 27 views
0

我試着做這樣的快速轉換批處理文件的:ImageMagick的轉換和撰寫批處理文件

convert ./src/*.png -set filename: '%t' -gravity West -draw 'image over 0,0 424,600 "./panel.png"' ./dest/%[filename:].png 

這是非常相同的形組合:

convert ./src/*.png ./panel.png -set filename: '%t' -gravity +0+0 -composite ./dest/%[filename:].png 

除了最後一個未創建批處理只是製作一個第一個廢話文件。 看起來像是bug?

任何人都知道如何通過-composite使它更正確? for | awk | ls |找不到每個文件在shell中是不可接受的 - 因爲它們比第一個示例慢

回答

2

讀入文件列表,設定自己的輸出文件名,包括IM特殊圖像佔位符「空」,在您的疊加圖像閱讀,如果需要的幾何形狀,和複合材料,其覆蓋設置到所有其他帶「-layers composite」的圖像。該「null:」將原始輸入文件列表從疊加圖像中分離出來,因此ImageMagick知道堆棧中要開始執行組合的位置。

嘗試這樣的事情...

convert ./src/*.png -set filename: '%t' null: ./panel.png -layers composite ./dest/%[filename:].png 
+0

是的,就像 'convert ./src/*.png -set filename:'%t'null:./panel.png -geometry + 0 + 0 -layers composite ./dest /%[filename:]。png' 非常感謝 – nvvetal

0

看起來像是bug?

不是一個錯誤。您的第二條命令是告訴ImageMagick使用匹配到圖像堆棧中的所有文件,並將其合併爲一個。

您可以嘗試與mogrify效用相同的解決方案,但我相信,如果你有一個for環擴大bash腳本這將是方式簡單。

​​
+0

它需要更多的時間:( – nvvetal

+1

使用[牛羚並行](https://www.gnu.org/software/parallel/)如果你需要節省時間。 – emcconville