PNGの品質を下げても容量が変わらない理由

Apps24はPNGに品質設定が適用されないため、PNG選択時に品質スライダーを無効にします。Canvasの品質設定はJPEGとWebP向けで、PNGには適用されません。同じ人工グラデーションを2つのPNG品質で保存し、バイト数とSHA-256を比較しました。

入力と結果

PNG 20%3,304 bytes
PNG 80%3,304 bytes
WebP 80%2,074 bytes
JPEG 80%3,916 bytes
PNG SHA-25654e456a5602aae16b8bd75c1fc688858e1b447fe251ce9280e9431bce261e53e

結果の読み方

両PNGは3,304バイトでハッシュも同じでした。WebPの80%は2,074バイト、JPEGは3,916バイトです。形式変更で必ず小さくなるわけではありません。この試料は写真全体の平均ではありません。ハッシュの一致は出力の一致を示しますが、容量の一致だけでは証明できません。

次の作業

PNGを保つなら少ない画素でよいか検討してください。必要ならWebPを試して輪郭、小さな文字、透明部分を確認します。JPEGは不透明な写真向けですが、Apps24は透明部分を白くします。保存前に容量を比較し、削減率が負なら新形式が必要な場合以外は原本を残しましょう。

ツールを使う

制限とテスト条件

条件:Chromium 154、320×200の不透明画素、R=x mod 256、G=y mod 256、B=(x+y) mod 256、alpha=255、縮小なし。スクリプトで再現できます。内容とブラウザで結果は変わり、小さいファイルは画質の評価値ではありません。

png-fixture.js

参考資料

Apps24は例を実装と回帰テストで確認します。ブラウザ実験は条件を明示し、すべての端末を保証するものではありません。不具合はURL、入力例、期待する結果、ブラウザを添えてお知らせください。パスワード、非公開文書、個人情報は送らないでください。