2017-07-17 13 views
1

フォルダ内のすべての画像をsvgからpngに変換する必要があります。画像はtest1.svg、test2.svg、...、testn.svgと呼ばれます。複数の画像をsvgからpngに変換する

for i in *.svg 
do 
    convert "$i" PNG24:"$i".png 
done 

が正しく仕事をし、そして画像がtest1.svg.png、test2.svg.png、...、testn.svg.pngと呼ばれています。次のスクリプトを使用しました。私の質問は次のとおりです:

1)出力画像をtest1.png、test2.png、...、testn.pngという名前にすることは可能ですか?基本的に名前から 'svg'部分を削除しますか?

2)他のディレクトリに直接送信することはできますか?

ありがとうございます!

答えて

3

はい。あなたは別のディレクトリを作成し、このようにそこにそれらを送信することができます

mkdir other 
for i in *.jpg; do 
    convert "$i" PNG24:other/"${i%jpg}png" 
done 

あなたが行うには、画像をたくさん持っている、とあなたはMacOSのまたはLinux上にある場合、私は仕事を得るためにパラレルGNUをお勧めします完了しました:

mkdir other 
parallel convert {} PNG24:other/{.}.png ::: *jpg 
+0

Neat。パラレルな部分は私にとって素晴らしいようです。 多くの感謝! – TheRevanchist

+0

あなたがやるべきことがたくさんあり、あなたが支払った素敵なインテルのコアを使用したいと思っていて、通常はアイドル状態で座っていれば、これは素晴らしいツールです。進行状況を見るために '--progress'または' --bar'を追加してみてください。 '--dry-run'を使って、実際に何をしているのかを知ることもできます。ここで費やされた10分は、https://www.gnu.org/software/parallel/parallel_tutorial.htmlあなたのプロジェクトにはうまくいきます。 –

+0

Mark Setchell:$ {string%substring}についてのおかげで\t $ stringの後ろから$部分文字列を取り除きます。 ImageMagickでは、私は接尾辞を削除するためにname = $(convert -ping $ file -format "%t" info :)を実行していました。今すぐ名前= $ {ファイル%。*} – fmw42

関連する問題