web-dev-qa-db-ja.com

PNGファイルの圧縮レベルとそれが不可逆であるかどうかを知る方法は?

PNGファイルが圧縮されているかどうか、およびWindowsでどのように(少なくとも、可逆圧縮であったかどうか)知ることができますか? Windowsエクスプローラーから標準のファイルプロパティダイアログを開くと、これに関するプロパティが表示されません。

3
TecMan

PNGは、PNG仕様で義務付けられているように、常にDEFLATEアルゴリズムによって圧縮されます。これは、とりわけZipコンプレッサーで使用されるのと同じアルゴリズムです。

PNGには不可逆圧縮アルゴリズムはありません。 PNGは常にロスレスです。

免責事項:画像の品質(色深度)を下げることによってPNGサイズを「最適化」する方法があります PNGとして保存します。これはPNG自体とは関係がなく、PNGでも元のファイルでも確実に検出することはできません。

8
Agent_L

画像ファイルの圧縮率の見積もりは、実際には非常に簡単です。画像の幅、高さ、ビット深度を知っている必要があります。非圧縮の生画像データに必要なデータ量を計算するには、次の簡単な操作を行う必要があります:raw data size = image width * image heigth * (bits per pixel / 8)。次に、_raw data size_をPNGのファイルサイズで割ると、推定圧縮率が得られます(ヘッダーなどのために正確な値ではありません)。たとえば、640x480x32の画像には640 * 480 * (32 / 8)が必要です。これは1273800バイトです。ここで、PNGの容量が200kBであると仮定します。 (200 * 1024)/ 1273800を除算します。これにより、約0.16の圧縮率が得られます。

そして、1つの事実について覚えておいてください。 24ビット画像が実際に32ビット値として保存される場合があります。したがって、それを考慮に入れる必要があります。

2
pvc