web-dev-qa-db-ja.com

ImageMagickを使用して大きな画像のみを比率に縮小します

ImageMagickを使用すると、必要なもののスクリーンショットを簡単に作成できますが、使用するスペースを減らすためにサイズを変更したいと思います。私はこれを見つけました :

convert screen.jpg    -resize 1280x1024\!  screen.jpg

しかし、最も大きいサイズ(width OR height))に基づいてサイズを変更したいのですが、もう一方(height OR width)は比例してサイズ変更されますあまりにも。

たとえば、すべての画像を最大の幅/高さのサイズで600pxにサイズ変更したいとします。

  • 1920x1200 =>幅が最大:600x375
  • 600x1200 =>高さが最大:300x600

ImageMagickでそれを行うにはどうすればよいですか? (または、少なくとも1つの最大サイズを定義します(たとえば、幅のみ))。

ご協力いただきありがとうございます!

注:importコマンドを使用して自動的に実装することは可能ですか?

20
Cyril N.

アスペクト比を維持するために、画像を特定のスケールで縮小できます。

変換-サイズ変更50%screen.jpg

または、ピクセル領域を使用します。

convert -resize 180000 @ screen.jpg

これはまた、指定された領域に小さな画像を爆破します。 ImageMagickで大きな画像を縮小し、小さな画像はそのままにしておく場合は、 ">"演算子を使用します。

convert -resize '180000 @>' screen.jpg

次に、シェルが「>」記号をファイルリダイレクタとして解釈しないように、geometry引数を引用符で囲む必要があることに注意してください。

これらおよびその他のオプションについては、ImageMagickのドキュメントを参照してください。 http://www.imagemagick.org/script/command-line-processing.php#geometry

21
EPSG31468

アスペクト比を維持するには:

convert -resize 600x600 screen.jpg:

  • 1920x1200 => 600x375
  • 600x1200 => 300x600
  • 150x300 => 300x600
  • 300x150 => 600x300

convert -resize 600x600\> screen.jpg:

  • 1920x1200 => 600x375
  • 600x1200 => 300x600
  • 150x300 => 150x300(大きいサイズにサイズ変更されません)
  • 300x150 => 300x150(大きいサイズにサイズ変更されません)
42
AndreyP