2017-05-01 23 views
0

我以編程方式使用ImageMagick將一些用戶定義的轉換應用於圖像。我使用生成一個新的進程和腳本運行ImageMagick的具有類似的論點:用於指定輸出格式的ImageMagick參數

convert /tmp/source -resize 100x /tmp/transformed 

然後它讀取轉換圖像從/tmp/transformed回來。我想添加將圖像轉換爲另一種圖像格式的選項,但從查看IM文檔一段時間後,我可以看到的唯一方法是將輸出目標與.<ext>相加,如下所示:

convert /tmp/source -resize 100x /tmp/transformed.png 

還有別的辦法嗎?對我來說,使用預先存在的腳本來做到這一點最簡單的方法是提供一個參數,但我找不到它。喜歡的東西:

convert /tmp/source -resize 100x -format png /tmp/transformed 

這可能嗎?或者我堅持不得不將擴展名附加到輸出目的地?

回答

0

我不知道你所厭惡是什麼追加後綴,但另一種選擇弗雷德的很好的建議是使用「格式說明」前綴,這會使你的基本文件名不變 - 如果這就是你正在努力實現。

convert Image -resize 100x PNG:/tmp/transformed/Image 

替代PNG:GIF:JPEG:等,以適應。

+0

如果我不修改這些代碼,代碼庫更容易處理,因爲'/ tmp/transformed'字符串在很多地方被硬編碼。感謝您的解決方案! :) –

1

-format png在mogrify中使用,而不是按照我的理解轉換。您需要在輸入和輸出文件名中指定輸入的後綴和輸出的所需後綴。

convert /tmp/source.suffx -resize 100x /tmp/transformed.png 

假設png是所需的輸出格式。

也許我誤解了你想要的東西。如果是這樣,請澄清。後綴是源變量還是變量變量?如果是這樣,您可以使用IM將字符串格式中的%t和%e的源文件名與其後綴分開。但是對於輸出,你將不得不使用你的文件系統來解析。見http://www.imagemagick.org/script/escape.php

或者,使用mogrify支持-format png格式

mogrify -format png -resize 100x *.suffix 

這將需要與後綴.suffix輸入目錄的所有文件和將其轉換成PNG。但是,我建議你創建一個新的目錄來保存所有的輸出圖像,因爲它會覆蓋你的輸入文件。然後您需要將-path path2/newdirectory添加到上面的命令中。請參閱http://www.imagemagick.org/Usage/basics/#mogrify

與源和目標關聯的實際文件名是什麼?這些只是真正的文件名變量?