web-dev-qa-db-ja.com

ImageMagickを使用して画像を新しいフォルダーに一括サイズ変更する

4MBの上に画像のフォルダがあります-このフォルダをdsc_big/と呼びましょう。 convert -define jpeg:extent=2MBを使用して2MBの下に変換し、dsc_big/*を既存のフォルダーdsc_small/にコピーしたいと思います。

convert dsc_big/* -define jpeg:extent=2MB dsc_small/を試しましたが、-0-1などと呼ばれる画像が生成されます。

私は何をしますか?

39
tekknolagi

これは、長い試練の後、私を助けたコマンドでした。幅と高さが可変の大きな画像の大きなリストから同じサイズのサムネイルを作成したかったのです。ギャラリーページを作成するためのものでした。

convert -define jpeg:size=250x200 *.jpg  -thumbnail 250x200^ -gravity center -extent 250x200  crop/thumbnail-%d.jpeg

すべて同じ幅と高さのサムネイルのサイズを変更しました。 :) ImageMagickに感謝します。

4
sajin tm

ここに解決策がありますなしコンソール上のforループの使用

convert *.jpeg -define jpeg:extent=2MB -set filename:f '../dsc_small/%t_small.%e' +adjoin '%[filename:f]'
3
Nacho

これは古い質問ですが、私はこれにつまずく他の誰かの利益のためにこの応答を追加しています。

私はまったく同じ問題を抱えていましたが、mogrifyの使用にがっかりして、このプロセスを作成するために easymagick という小さなPythonベースのユーティリティ内部でconvertコマンドを使用している間は簡単です。

これはまだ進行中の作業であることに注意してください。どんなフィードバックもいただければ幸いです。

1
Danish

これは私のために働く

convert -rotate 90 *.png rotate/image.jpg 

「rotate」フォルダーにimage-0.jpg、image-1.jpg、image-2.jpg .....を生成します。ただし、元のファイル名を保持する方法がわかりません。

0
Khawar

cd-- ingが目的のフォルダーにあり、bashグローバル変数$PWD私のconvertがエラーをスローしないようにしました。 ImageMagickの最近実装されたcaption:http://www.imagemagick.org/Usage/text/#caption 画像にベースファイル名を付けて、最初のディレクトリ内の別のディレクトリに配置する機能。

cd ~/person/photos
mkdir labeled
for f in $PWD/*.JPG; do
    width=$(identify -format %w $f)
    filename=$(basename $f .JPG)
convert -background '#0008' -colorspace transparent -fill white -gravity center -size ${width}x100  caption:"${filename}" ${f} +swap -gravity south -composite "$PWD/labeled/${filename}.jpg";
done
0