私はBashで画像サイズを決定する非常に迅速な方法を見つけようとしています。
私は画像を取得し、imagemagickを使用して画像の高さと幅を決定できることを知っています。これが最速の方法ではないかもしれません。
また、小さな機能セットだけが必要なときにimagemagickをインストールする必要があることも心配です。私が作業している組み込みシステムには、リソース(CPU、RAM、ストレージ)が非常に限られています。
どんなアイデアがありますか?
ベストアンサー1
ご存知のように、全体は必要ありません。イメージマジシャンパック。あなたはただidentify
。
また、実行可能ファイルがリンクされているライブラリ(およびこれらのライブラリがリンクされているライブラリ)が必要です。
> whereis identify
identify: /bin/identify /usr/bin/identify /usr/share/man/man1/identify.1.gz
> ldd /bin/identify
ldd
リストが表示されます。私がこれを行ったとき、いくつかのXライブラリ、libjpegなどが含まれており、ImageMagickパッケージから来たように見える2つのライブラリもlibMagickCore
含まれていましたlibMagickWand
。これらは同じ項目に結び付けられているように見えるため、identify
機能します。 。
identify
サイズはファイルの先頭のヘッダーにあり、私たちが見ているものなので、サイズを取得するためにイメージ全体をダウンロードする必要はありません。たとえば、ここではjpeg全体の最初の4kBを新しいファイルにコピーします。
dd if=real.jpg of=test.jpg bs=1024 count=4
ヘッダーを含めるには4kBで十分です。その量の1/4で十分だと思います。今:
>identify test.jpg
test.jpg JPEG 893x558 893x558+0+0 8-bit DirectClass 4.1KB 0.000u 0:00.000
これらは正しいサイズですreal.jpg
。ただし、その情報は画像ヘッダーでは提供されないため、サイズ(4.1KB)は切り捨てられたファイルのサイズです。
したがって、各画像の最初のKB程度をダウンロードするだけです。