画像グループ内で幅が最も広い画像を見つけるにはどうすればよいでしょうか?

画像グループ内で幅が最も広い画像を見つけるにはどうすればよいでしょうか?

たとえば、画像が 50 枚あり、そのうちの幅が最も大きいものを知りたいとします。どのコマンドを使用すればよいでしょうか?

答え1

このコマンド(ImageMagick から識別)は、最大幅の画像を出力します。

identify -format "%w %h %f\n" *.png | sort -n -r -k 1  | head -n 1

-format "%w %h %f = 幅、高さ、ファイル名

結果: wh image.png

ソース: フォルダー内の最大画像サイズを検索: https://unix.stackexchange.com/questions/155544/find-largest-image-dimensions-in-folder

画像が同じフォルダーにない場合は、ターミナルを開き、サブディレクトリを含むフォルダーからこのスクリプトを実行します。

find . -iname "*.png" -type f -exec identify -format "%w %h %f\n" '{}' \;      | sort -n -r -k 1 | head -n 1

注意: 同じ幅の画像が複数ある場合、表示される結果は 1 つだけです。幅で並べ替えたすべての画像のリストを表示するには、前のコマンドから head -n 1 を削除します。

答え2

このコマンドは、現在のディレクトリ内の画像の幅を検索します。

imageinfo をインストールする前に、次の操作を行う必要があります。

sudo apt install imageinfo

次にこのコマンドを入力します

find . -maxdepth 1 -type f -iregex ".*/.*\.\(jpg\|jpeg\|png\|tiff\|bmp\svg\)" \
    -exec bash -c "echo -ne {}'  '; imageinfo --width {}; echo " \;\
    | sort -k2 -n

最大のものだけが必要な場合は、上記のコマンドにパイプを追加します。

... | tail -n 1

関連情報