3

さまざまなサイズの画像 (jpg/png) を取得して、非常に小さな画像ファイルに変換したいと考えています。300 バイト未満を非常に小さいと定義します。

画質はそれほど重要ではありません (明らかに)。変換された画像が非常にピクセル化されて〜4色になっていると考えています。

これに最適な画像形式は何ですか?

これを行うための ImageMagick convert コマンドはありますか?

4

2 に答える 2

5

解決

これは、必要なことを行う 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 があります。

ディザ=なし dither=リーメルスマ dither=フロイドスタインバーグ

そしてオリジナル:

オリジナル

于 2013-11-14T00:08:47.373 に答える
3

画像に正確な色をいくつか使用している場合は、GIF を使用することをお勧めします。これは、ファイル内に配置されたパレットに色のインデックスのみを格納し、完全な RGB では格納しないためです。したがって、Photoshop で 4 色の GIF 画像を作成すると、1 ピクセルあたり 2 ビット (またはこのようなもの) しかありません。
インデックス付きの色とそれらを保持できる画像形式の詳細については、「インデックス付きの色」を参照してください。

于 2013-11-13T23:27:37.987 に答える