2026-08-10 / 画像・写真
PNGとJPEGの違い — 透過が消えるのはどこか
背景を透明にしたのに白くなる。この現象のかなりの部分は、どこかの経路でJPEGに変換されていることで説明がつきます。2つの形式の違いを、透過という一点にしぼって整理します。
結論
JPEGには、透明を記録するための場所(アルファチャンネル)がありません。 PNGにはあります。透過した画像をJPEGで保存した時点で、透明だった部分は白などの色に置き換わり、 あとから戻すことはできません。
アルファチャンネルという考え方
デジタル画像は、ピクセルごとに赤・緑・青の値を持っています。ここに「そのピクセルがどれくらい不透明か」を表す4つめの値を足したものが、アルファチャンネルです。
アルファが0なら完全に透明、255なら完全に不透明。その間は半透明で、髪の毛や布の輪郭のような、背景がうっすら透ける部分を表現します。
PNGはこの4つめの値を保存できます。JPEGは仕様として持っていません。だからJPEGに変換した瞬間、透明だった情報は捨てられます。
ふたつの形式の性格
| PNG | JPEG | |
|---|---|---|
| 透過 | できる | できない |
| 圧縮 | 可逆(劣化しない) | 非可逆(劣化する) |
| 保存を繰り返すと | 変わらない | だんだん劣化する |
| ファイルの大きさ | 大きい | 小さい |
| 得意なもの | イラスト・図・文字・切り抜き | 写真 |
HEICはiPhoneの標準形式で、透過を持てる場合もありますが、渡した先での扱いが読めません。透過を確実に残したいならPNGです。
どこでJPEGに変わるのか
自分でJPEGを選んだ覚えがなくても、次のような経路で変換されることがあります。
- アプリの書き出し設定が既定でJPEGになっている。「保存」を押しただけでは形式を選んでいないことがあります
- 受け取った側のアプリが内部で変換している。写真ライブラリ経由で画像を読むアプリの中には、読み込み時にJPEG化するものがあります。作った側に落ち度はないのに結果だけが失われます
- 送信の途中で圧縮されている。メッセージアプリやSNSは、送信時に画像を自動で圧縮・変換することがあります
1は自分で直せます。2と3は渡す経路を変えるしかありません。
透明なのに白く見えるだけ、という場合もある
ここが紛らわしいところです。iPhoneの「写真」アプリは、透明な部分を白または黒で表示します。これは表示上の仕様であって、ファイルが壊れているわけではありません。
つまり「写真アプリで見たら白かった」は、失敗の証拠になりません。ファイルは正しく透過している可能性があります。詳しくは背景を透過したのに、保存すると白くなるで説明しています。
透過を保ったまま渡すには
確実な順に並べると、次のようになります。
- 「ファイル」アプリに書き出す — 生成したPNGのバイト列がそのまま保存されます。もっとも安全です
- 共有シートから相手のアプリへ直接わたす — 写真ライブラリを経由しないぶん、変換される機会が減ります
- 写真に保存する — 保存自体はPNGのままでも、そこから読み出す側のアプリ次第で変換されることがあります
そして、渡す前にファイル形式とアルファチャンネルを実際に確認するのが確実です。拡張子が .png でも、中身がJPEGということはありえます。
用途ごとの選び方
- LINEスタンプ、フリマの商品写真、ロゴ、アイコン — PNG。透過が必要です
- 写真をそのまま載せる、容量を抑えたい — JPEG。透過が要らないなら軽いほうが有利です
- 文字や線が多い図 — PNG。JPEGだと文字のふちがにじみます
透けマル
透けマルは、書き出したPNGを自分で読み戻して、アルファチャンネルが本当に残っているかを数値で表示します。「PNGとして保存されたか」「完全に透明なピクセルが何パーセントあるか」がその場で分かるので、どこで透過が失われたのかを切り分けられます。
iOS 17+ / 買い切り 120円
スマートフォンのカメラで読み取る