4MB
の上に画像のフォルダがあります-このフォルダをdsc_big/
と呼びましょう。 convert -define jpeg:extent=2MB
を使用して2MB
の下に変換し、dsc_big/*
を既存のフォルダーdsc_small/
にコピーしたいと思います。
convert dsc_big/* -define jpeg:extent=2MB dsc_small/
を試しましたが、-0
、-1
などと呼ばれる画像が生成されます。
私は何をしますか?
これは、長い試練の後、私を助けたコマンドでした。幅と高さが可変の大きな画像の大きなリストから同じサイズのサムネイルを作成したかったのです。ギャラリーページを作成するためのものでした。
convert -define jpeg:size=250x200 *.jpg -thumbnail 250x200^ -gravity center -extent 250x200 crop/thumbnail-%d.jpeg
すべて同じ幅と高さのサムネイルのサイズを変更しました。 :) ImageMagickに感謝します。
ここに解決策がありますなしコンソール上のforループの使用
convert *.jpeg -define jpeg:extent=2MB -set filename:f '../dsc_small/%t_small.%e' +adjoin '%[filename:f]'
これは古い質問ですが、私はこれにつまずく他の誰かの利益のためにこの応答を追加しています。
私はまったく同じ問題を抱えていましたが、mogrify
の使用にがっかりして、このプロセスを作成するために easymagick という小さなPythonベースのユーティリティ内部でconvert
コマンドを使用している間は簡単です。
これはまだ進行中の作業であることに注意してください。どんなフィードバックもいただければ幸いです。
これは私のために働く
convert -rotate 90 *.png rotate/image.jpg
「rotate」フォルダーにimage-0.jpg、image-1.jpg、image-2.jpg .....を生成します。ただし、元のファイル名を保持する方法がわかりません。
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