回答:
PNGは、PNG仕様で義務付けられているように、常にDEFLATEアルゴリズムによって圧縮されます。これは、zip圧縮プログラムなどで使用されるアルゴリズムと同じです。
PNG用の非可逆圧縮アルゴリズムはありません。PNGは常に無損失です。
免責事項:PNG として保存する前に画像の品質(色深度)を下げることでPNGサイズを「最適化」する方法があります。これはPNG自体とは関係なく、PNGでも元のファイルでも確実に検出することはできません。
画像ファイルの圧縮率の推定は、実際には非常に簡単です。画像の幅、高さ、ビット深度を知る必要があります。圧縮されていない生画像データで必要なデータ量を計算するには、次の簡単な操作を行う必要がありますraw data size = image width * image heigth * (bits per pixel / 8)
。次にraw data size
、PNGのファイルサイズで除算するだけで、推定圧縮率が得られます(ヘッダーなどにより正確な値ではありません)。たとえば、640 x 480 x 32の画像640 * 480 * (32 / 8)
には1 273 800バイトが必要です。PNGに200kBがあると仮定しましょう。(200 * 1024)/ 1273800を除算します。これにより、圧縮率は約0.16になります。
そして、1つの事実について覚えておいてください。時々、24ビット画像は実際には32ビット値として保存されます。それを考慮に入れなければなりません。