さまざまなサイズの画像 (jpg/png) を取得して、非常に小さな画像ファイルに変換したいと考えています。300 バイト未満を非常に小さいと定義します。
画質はそれほど重要ではありません (明らかに)。変換された画像が非常にピクセル化されて〜4色になっていると考えています。
これに最適な画像形式は何ですか?
これを行うための ImageMagick convert コマンドはありますか?
さまざまなサイズの画像 (jpg/png) を取得して、非常に小さな画像ファイルに変換したいと考えています。300 バイト未満を非常に小さいと定義します。
画質はそれほど重要ではありません (明らかに)。変換された画像が非常にピクセル化されて〜4色になっていると考えています。
これに最適な画像形式は何ですか?
これを行うための ImageMagick convert コマンドはありますか?
これは、必要なことを行う ImageMagick コマンドです。
convert <in>.<extension> -sample 1x1 -strip <out>.<extension>
画質は少し悪くなりますが、あなたが言ったように、それはあなたにとってそれほど重要ではありません.
そして、これはおそらくより便利なバージョンです:
convert <in>.<extension> -dither FloydSteinberg -resize 32x32 -colors 4 -strip <out>.gif
その他のバリエーションについては、以下を参照してください。テストでは、GIF が最小の出力を示しました。
1.7M テスト画像での私の結果in.jpg
:
for type in jpg gif png; do convert -strip -sample 1x1 in.jpg out.$type; done
次にls
与えます:
-rw------- 1 collins collins 1.7M Nov 13 16:04 in.jpg
-rw------- 1 collins collins 286 Nov 13 16:07 out.jpg
-rw------- 1 collins collins 43 Nov 13 16:07 out.gif
-rw------- 1 collins collins 82 Nov 13 16:07 out.png
したがって、GIF と PNG の方が適しているように見えますが、JPG はまだ 300 バイトのマークを下回っています。
〜4色のより良い近似を得るには、たとえば次のようにします
for type in jpg gif png; do convert -strip -sample 2x2 in.jpg out.$type; done
JPGが大きすぎますが:
-rw------- 1 collins collins 1.7M Nov 13 16:04 in.jpg
-rw------- 1 collins collins 423 Nov 13 17:03 out.jpg
-rw------- 1 collins collins 50 Nov 13 17:03 out.gif
-rw------- 1 collins collins 93 Nov 13 17:03 out.png
また、最大 4 色を取得する別の方法で、出力画像のサイズを大きくすることができます。
for type in jpg gif png; do
for dither in None Riemersma FloydSteinberg; do
convert in.jpg -dither $dither -resize 32x32 -colors 4 -strip out.$dither.$type;
done
done
現在、GIF と一部の PNG は 300 バイト未満で作成されています。
-rw------- 1 collins collins 1.7M Nov 13 16:04 in.jpg
-rw------- 1 collins collins 1.9K Nov 13 17:30 out.None.jpg
-rw------- 1 collins collins 2.1K Nov 13 17:30 out.Riemersma.jpg
-rw------- 1 collins collins 2.1K Nov 13 17:30 out.FloydSteinberg.jpg
-rw------- 1 collins collins 225 Nov 13 17:30 out.None.gif
-rw------- 1 collins collins 229 Nov 13 17:30 out.Riemersma.gif
-rw------- 1 collins collins 234 Nov 13 17:30 out.FloydSteinberg.gif
-rw------- 1 collins collins 263 Nov 13 17:30 out.None.png
-rw------- 1 collins collins 332 Nov 13 17:30 out.Riemersma.png
-rw------- 1 collins collins 319 Nov 13 17:30 out.FloydSteinberg.png
たとえば、次の 3 つの出力 GIF があります。
そしてオリジナル:
画像に正確な色をいくつか使用している場合は、GIF を使用することをお勧めします。これは、ファイル内に配置されたパレットに色のインデックスのみを格納し、完全な RGB では格納しないためです。したがって、Photoshop で 4 色の GIF 画像を作成すると、1 ピクセルあたり 2 ビット (またはこのようなもの) しかありません。
インデックス付きの色とそれらを保持できる画像形式の詳細については、「インデックス付きの色」を参照してください。