実測ベンチマーク:JPEG・PNG・WebPをPhotrimで圧縮した結果を検証する
公開日: 更新日:
Photrimで実際にJPEG・PNG・WebP画像を圧縮し、高画質・標準・高圧縮それぞれの元容量・圧縮後容量・削減率を実測しました。PNGでほとんど縮まない、むしろ増える場合があることも含めて正直に紹介します。
この記事について
「圧縮するとどのくらい軽くなるの?」という疑問に、想定や一般論ではなく、Photrimの実装を実際に動かして得た数値で答えます。都合の良い結果だけを選ばず、縮まないケース・むしろ増えてしまうケースも含めてそのまま掲載しています。
検証方法
実在の写真は権利関係の確認が難しいため使わず、以下の3枚をこの記事のために生成しました。
- JPEG(写真相当): 空・山並み・草地のグラデーションとノイズで構成した、写真に近い情報量を持つ合成画像(1600×1200px)。
- PNG(スクリーンショット相当): ヘッダーバー・カード・テキスト行を模した、単色の図形中心の合成画像(1200×900px、半透明領域を含む)。
- WebP(写真相当): 上記JPEGと同じ内容をWebP形式で保存したもの。
いずれも乱数シードを固定して生成しているため、誰でも同じバイト列の画像を再生成できます。各画像を、Photrimの圧縮処理(App\Domain\ImageCompression\Service\CompressService)へ高画質・標準・高圧縮のそれぞれで直接渡し、出力ファイルの実際のサイズを計測しました。
結果:JPEG(写真相当の画像)
| 圧縮品質 | ファイルサイズ | 削減率 |
|---|---|---|
| (元画像) | 561.1KB | - |
| 高画質 | 205.5KB | 63.4% |
| 標準 | 120.8KB | 78.5% |
| 高圧縮 | 86.5KB | 84.6% |
写真のような情報量の多い画像では、高画質でも6割以上、高圧縮では8割以上ファイルサイズが縮みました。
画質上の注意: 出力画像を実際に拡大して見比べたところ、高画質では山の輪郭は滑らかでしたが、高圧縮では輪郭周辺(色の境界)に、本来なかった色のにじみ(リンギングノイズ)がはっきり確認できました。全体を縮小して見る分には気づきにくい程度ですが、輪郭のくっきりした被写体を等倍で確認する用途では、高圧縮の選択に注意が必要です。
結果:PNG(スクリーンショット相当の画像)
| 圧縮品質 | ファイルサイズ | 削減率 |
|---|---|---|
| (元画像) | 6.9KB | - |
| 高画質 | 6.8KB | 1.2% |
| 標準 | 6.9KB | 0.2% |
| 高圧縮 | 22.5KB | 約3.3倍に増加(-225.6%) |
正直にお伝えすると、この画像ではほとんど縮まず、「高圧縮」を選ぶとむしろ元より大きくなりました。これは失敗ではなく、PNGの仕組みによる想定内の結果です。PNGは可逆圧縮のため、そもそも圧縮できる余地が画像の内容(この場合は単色の図形中心で、既に高い圧縮率で保存されていた画像)に左右されます。加えてPhotrimの現在の実装では、PNGの圧縮レベルは「高画質」が最も強く圧縮され、「高圧縮」が最も弱く圧縮される、直感とは逆の対応になっています(詳しい仕組みは画像圧縮の仕組みとはで解説しています)。PNG画像でファイルサイズを小さくしたい場合は、名前とは逆に「高画質」を選ぶことをおすすめします。
画質上の注意: PNGは可逆圧縮のため、圧縮レベルを変えても画質は劣化しません。実際に、高画質・標準・高圧縮それぞれの出力を再度デコードしたピクセルデータを比較したところ、3設定とも完全に一致しました(見た目の差はゼロです)。圧縮レベルの違いはファイルサイズにのみ影響し、画質には一切影響しません。
結果:WebP(写真相当の画像)
| 圧縮品質 | ファイルサイズ | 削減率 |
|---|---|---|
| (元画像) | 405.7KB | - |
| 高画質 | 148.3KB | 63.5% |
| 標準 | 60.4KB | 85.1% |
| 高圧縮 | 13.6KB | 96.6% |
同じ写真相当の内容でも、WebPはJPEGより高圧縮時の削減率が大きくなりました。形式ごとの違いはJPEGとは・WebPとはでも解説しています。
画質上の注意: JPEGとは劣化の現れ方が異なりました。JPEGの輪郭のにじみに対し、WebPの高圧縮では背景のノイズ(ザラつき)部分が滑らかに均され、ディテールの粒状感が失われる傾向が見られました。輪郭のにじみのような目立つノイズは出にくい一方、質感の細かい部分ではのっぺりした印象になりやすい、という違いです。
結果から分かること
- 写真のような情報量の多い画像(JPEG・WebP)は、圧縮品質を下げるほど大きく縮みます。ただしJPEGは輪郭周辺のにじみ、WebPはディテールの平滑化というように、劣化の現れ方は形式によって異なります。
- 単色の図形中心の画像(PNGでよくあるスクリーンショット等)は、そもそも縮む余地が小さく、設定によってはむしろ大きくなることがあります。
- PNGの「高画質」「高圧縮」は、JPEG・WebPと違い、ファイルサイズの観点では名前と逆の対応になります。一方で画質(見た目)は、可逆圧縮のためどの設定でも一切劣化しません。
これらはこの記事の検証画像で得た実測値であり、実際の写真やスクリーンショットでは画像の内容によって結果が変わります。目安としてご利用ください。
測定条件
- 実行日: 2026年9月18日
- 対象コミット:
0d485a3 - 実行環境: PHP 8.3.15、Laravel 10.50.2
- 検証画像の生成スクリプト:
backend/scripts/generate-benchmark-images.php(リポジトリに同梱、将来アルゴリズムを変更した際は同じ手順で再計測できます)
実際に圧縮してみる
ご自身の画像でどのくらい縮むかは、画像を今すぐ圧縮するから実際に試してみるのが一番確実です。