2014-07-04 17 views

回答

3

我不知道是否有指定從mogrify輸出文件格式的方式,但我會用convert用簡單的bash循環,而不是:

for f in *.jpg; 
do 
    convert "$f" -resize 150x150 +profile "*" "${f%.jpg}-thumbnail.jpg"; 
done; 

或者,如果你真想用mogrify你可以使用-output-directorymore on this option here)把新文件放到單獨的目錄,然後照顧重命名的:

mkdir tmp; 
gm mogrify -output-directory tmp -size 150x150 -resize 150x150 +profile "" "*.jpg"; 
for f in tmp/*.jpg; 
do 
    mv "$f" "${f%.jpg}-thumbnail.jpg"; 
done; 
mv tmp/* .; 
rm -rf tmp; 

我喜歡第一種方法更好;)

+0

這個答案是正確的(+1)。對於一次性運行,我使用一個腳本爲每個運行「gm convert」,但如果我做了很多圖像,我通常會使用類似於第二種方法的內容,以避免重複加載「gm」。在我看來,「-name filename」或類似文件將是添加到mogrify的有用選項。 ImageMagick和GraphicsMagick都有一個「-name」選項,但它的文檔非常稀疏,並且不被「mogrify」識別。 –

2

如果輸出格式(擴展名)與輸入格式不同,則文件不會被覆蓋。如果它們是相同的,你可以使用這一招,使他們似乎是爲了這個目的「不同」,但實際上是一樣的,但在擴展的情況有所不同:

gm mogrify -resize 150x150 -format PNG +profile "*" *.png 

編輯:

我不知道「mogrify」中的設施是否重命名輸出文件,而不是指定不同的目錄或不同的擴展名。所以fragphace的答案是正確的。您將需要使用腳本來重命名它們。在我的答案組合:

gm mogrify -resize 150x150 -format PNG +profile "*" *.png 
for file in *.PNG 
do 
    basename=`echo $file | sed -e "s/.PNG//"` 
    mv $basename.PNG $basename-thumbnail.png 
done 
+0

我想保持文件擴展名相同,但附加文件名..所以原始文件將看起來像photo.png和新文件將看起來像photo-thumbnail.png 。我想將「縮略圖」添加到目錄中的每個文件。有沒有辦法做到這一點? –

+0

不是直接。 Fragphace是正確的;你必須使用腳本。我相應地修改了我的答案。 –

+0

謝謝!我希望我能給你兩個正確的答案。 –

相關問題