Bash:URLで画像サイズを決定する最速の方法

Bash:URLで画像サイズを決定する最速の方法

私は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程度をダウンロードするだけです。

おすすめ記事