ImageMagick – ファイルサイズの縮小

Imagemagick Fairusaizuno Suo Xiao



美しく大きな画像は、まさに素晴らしいものです。通常、途方もない品質が伴います。ただし、サイズが大きすぎる写真を用意できない場合が非常に多くあります。適切なサイズの画像や、特定のサイズよりも小さい画像が必要な場合もあります。このような場合、プログラマーが望むのは、品質とサイズの中間点を見つける方法だけです。理論的には、品質を完全にあきらめても、ファイル サイズは問題にならないはずですが、実際には、品質とファイル サイズの妥協点を見つける必要があります。このチュートリアルでは、ImageMagick を使用して (品質をあまり損なうことなく) 写真のファイル サイズを縮小する方法について説明します。

ImageMagick のインストール

これには ImageMagick が必要なので、まずインストールしましょう。







須藤 apt-get インストール イメージマジック



品質スイッチ

写真/画像/ビデオのサイズを小さくする最も簡単な方法は、写真の品質を下げることです。品質スイッチは、JPEG/MIFF/PNG 圧縮レベルを表します。 JPEG と MPEG の場合、品質 1 は最高レベルの圧縮と最低の画質を表し、100 は最低レベルの圧縮と最高の品質を表します。



それでは例を見てみましょう。私が撮影した木の写真は、解像度が 4624×3468 で、5.70226MiB です。これは元の画像、具体的には JPEG です。






さて、要点は、画像のサイズを縮小したいということです。それでは、品質スイッチの設定を少し違うものに設定して、何が起こるか見てみましょう。

変換ツリー_4624x3468.jpg -品質 75 tree_4624x3468_quality75.jpg
変換ツリー_4624x3468.jpg -品質 25 tree_4624x3468_quality25.jpg



ある写真では品質を 75 に下げ、別の写真では 25 に下げました。元の画像は 5.70226MiB でしたが、画質 75 の画像は 2.74664MiB になり、画質 25 の画像は 1358250 (1.295MiB) になりました。ここでは、個人的には 75% の品質を使用します。



さて、写真の実際の品質にも関心があるので、写真をお見せしましょう。


tree_4624x3468_quality75.jpg


tree_4624x3468_quality25.jpg

ご覧のとおり、品質はそれほど影響を受けていませんが、ファイル サイズは小さくなっています。

今、私はPNGで同じことをやってみました.これは私が得たものです:


したがって、23501600B (22.413MiB) から 22.2854MiB になりました。 JPEG の場合、5.70226MiB から 1.295MiB になりました。 PNG などの損失のない形式の場合、品質の切り替えは非常に困難です。

写真のサイズ変更

写真のサイズを変更することも別の方法です。例えば:

変換ツリー_4624x3468.jpg -サイズ変更 50 % ×50 % tree_4624x3468_resize50 % .jpg



はっきりとわかるように、4624×3468 の画像は 5.70226MiB でしたが、2312×1734 の画像はわずか 1.56287MiB です。

定義スイッチ

define スイッチの後には、キーとその値が続きます。

-定義キー{=値}…

可能なキー値のリストは、次の場所にあります。 .

PNG の場合、png:compression-level=value を使用できます。値は 0 から 9 までの任意の値を指定できます。値 0 は最小の圧縮を提供しますが、高速であり、値 9 は最高の圧縮を提供しますが最も低速です。間にあるものもすべて入ります。

例えば:

変換 tree_4624x3468.png -定義 png:圧縮レベル= 9 tree_4624x3468_compression9.png



ほとんどの場合、プログラマーが望むのは、写真の最大サイズを設定することです。たとえば、写真の最大サイズを設定したいとします。これを行うには、define スイッチを使用できます。

-define jpeg:extent={size}

変換 tree_4624x3468.jpg -定義 jpeg: 範囲 =1MB tree_4624x3468_extent1MB.jpg



上の写真でわかるように、解像度は 4624×3468、サイズは 0.897MiB に設定されています。それで、あなたが要求したように、ImageMagick は最大サイズの 1MB 未満の写真を作成しました。

ストリップスイッチ

カメラで撮影した写真にはメタデータが付いています。メタデータを削除すると、スペースを空けることもできます。 ImageMagick では、ストリップ スイッチを使用してこれを行います。

変換ツリー_4624x3468.jpg -ストリップ tree_strip.jpg



ここで、ご覧のとおり、元の写真は 4624×3468 で 5.7MiB です。しかし、メタデータが削除されたイメージは 4.65MiB です。

色空間スイッチ

色空間を切り替えてみることもできます。この最初の例では、グレーにします。

変換ツリー_4624x3468.jpg -色空間 灰色の木_gray.jpg -品質 75



ご覧のとおり、画像サイズの縮小はそれほど大きくありませんが、5.70226MiB から 4.44997MiB に縮小されています。

または、次のことも試しました。

変換 tree_4624x3468.png -色空間 灰色の木_graypng.png



PNG の場合、元の写真、つまり 4624×3468 は 22.42MiB ですが、グレーにすると 8.88MiB になります。

カラースイッチ

使用する色の数を変更することもできます。この特定のケースでは、PNG で 16 色の​​みを使用します。

変換 tree_4624x3468.png -色 16 tree_4624x3468_16colors.png



元の PNG は 4624×3468 で 22.42MiB でした。しかし、16 色だけに変更すると、画像のサイズは 4.27MiB になりました。写真は次のようになります。


tree_4624x3468_16colors.png

複数のスイッチの使用

これで、写真に 1 つのスイッチを使用する必要がなくなりました。画像上で必要な数のスイッチを組み合わせることができます。

例 1 では、木の PNG 写真を撮ります。この元の写真は 4624×3468 で、サイズは 22.42MiB です。複数のスイッチを使用して、どこに移動するかを確認します。

変換 tree_4624x3468.png -ストリップ -サイズ変更 75 % x75 % -定義 png:圧縮レベル= 9 -色空間 グレー tree_4624x3468_reducedsize.png



したがって、元のサイズが 22.42MiB のこの PNG は、5.3MiB の画像に変わりました。結果の画像は、元のサイズの約 23% になります。

次に、JPG を見てみましょう。

変換ツリー_4624x3468.jpg -品質 75 -サイズ変更 75 % x75 % -ストリップ -色 16 tree_4624x3468_reducedsize.jpg



ここでは、JPG の場合、元のサイズの 5.7MiB からカラー画像の約 2.2MiB に変更しました。

しかし、それが着色されていない場合:

変換ツリー_4624x3468.jpg -品質 75 -サイズ変更 75 % x75 % -ストリップ -色空間 灰色の木_4624x3468_reducedsize.jpg



ここでは、元のサイズの 5.7MiB からグレーのイメージの 1.6MiB に変更しました。

必要に応じて、サイズに最大制限を設定することもできました。ポイントは、本気でやろうと思えばサイズを小さくできるということです。

結論

特定の目的のためにコードを記述する場合、画像も使用する傾向があり、サイズが大きすぎる画像を使用する余裕がない場合もあります。このような場合、プログラマーの主な焦点は、画像のサイズと画像の品質の間の妥協点を見つけることです。品質が低すぎる写真は使いたくありませんが、大きなサイズの写真を使用する余裕もありません。そのため、画像のサイズを縮小する方法が必要です。 ImageMagick は、さまざまなスイッチ (品質、サイズ変更、定義など) の形で画像のサイズを縮小するさまざまな方法を提供します。それらの 1 つまたは複数を使用して、画像のサイズを調整できます。