PNGの画質とPDFのファイルサイズ
PNGはロスレス(可逆)形式です。PNGで保存しても、JPGで保存したときのように細部が捨てられることはありません。スクリーンショット、グラフ、図がふつうPNGなのはそのためです。ここでは、PNG to PDFが実際に何を格納しているかを説明します。
ページ設定には2つのオプションがあります。初期設定の画質優先と、サイズ優先です。その下の詳細では、このガイドの要約を読めます。
画質優先:ロスレスで、JPEGにはしない
画質優先では、各PNGのピクセルはロスレス圧縮でPDFに格納されます(Flate。PNGが使っているのと同じDeflate方式の、PDFでの呼び名です)。どちらのオプションでも、画像がJPEGに変換されることはありません。
- 8ビットのPNG(カラー、パレット、グレースケール、インターレース)は、ChromeやEdgeなどのChromium系ブラウザでは、ピクセルを正確に保ちます。測定した差はゼロでした。
- 16ビットのPNGは、ブラウザがチャンネルあたり8ビットにデコードし、それがPDFに入ります。測定した最大の差は、Chromiumで255段階のうち1段階、Safariのエンジン(WebKit)で3段階でした。見た目は同じですが、16ビットのファイルをビット単位で写したものではありません。
- 透明部分は別のソフトマスクとして保持されます。Chromium系ブラウザでは正確に、SafariではグレースケールPNGや16ビットPNGの場合に目に見えない最大1段階の差で保持されます。それでもページ上で白く見える理由は、PNGの透過はPDFでどうなる?で説明しています。
Safariについての注意
Safariでは、グレースケールのPNGにごくわずかなずれ(255段階のうち最大2〜3段階で、目では見えない程度)が生じ、グレーではなくカラーとして格納されます。そのため、PDFがかなり大きくなることがあります。400 × 300のグレーのグラデーションは、Chromiumでは2 KB、WebKitでは151 KBになりました。グレースケールのPNGが多く、サイズが気になる場合は、Chromium系ブラウザのほうが小さいPDFを作れます。
とても大きな画像
ブラウザはすべての画像をデコードし、そこにはデバイスの上限があります。16,777,216ピクセル(4096 × 4096)を超える画像は、この上限に収まるように縮小されます。たとえば6000 × 4000、2400万画素の画像は5016 × 3344になります。カードにはデバイスの上限に合わせて縮小と表示され、保存後は結果の帯にその枚数が表示されます(例:1枚を縮小)。
ほとんどのスクリーンショットは、この上限を大きく下回ります。1170 × 12000の縦長のスクリーンショット(1400万画素)も、12000 × 1000のパノラマ(1200万画素)も、どちらもフルサイズのまま入ります。
サイズ優先
| 画像 | 画質優先 | サイズ優先 |
|---|---|---|
| 長辺 ≤ 2000 px | 変更なし | 変更なし |
| 長辺 > 2000 px | フルサイズ* | 長辺2000 px† |
| 長いスクリーンショット・パノラマ | フルサイズ* | 短辺600 px以上† |
| 圧縮 | ロスレス | ロスレス |
| 透明部分 | ソフトマスク | ソフトマスク |
* デバイスの上限を超える画像は、どちらのオプションでも縮小されます。
† バイト数で見て画像が小さくなる場合だけです。小さくならなければ、ピクセルサイズも含めて画質優先の版のままになります。
サイズ優先は、長辺が2000 pxを超える画像ごとに候補を用意します。通常は長辺を2000 pxにし、ロスレスのまま、透明部分も保持します。候補が使われるのは、画質優先の版より実際に小さい場合だけです。長辺が2000 px以下の画像にはまったく手を加えず、画像を拡大することもありません。あなたのPDFがどれだけ小さくなるかは、画像しだいです。決まった割合はなく、まったく小さくならないこともあります。
長いスクリーンショットとパノラマ
長辺を2000 pxまで縮めると、長い画像はとても細くなってしまいます。1170 × 12000のスクロールキャプチャなら195 × 2000になり、文字はもう読めません。そこで、このルールで短辺が600 pxを下回る場合、サイズ優先は短辺を600 pxに保ち、長辺を同じ比率で縮小します。短辺がもともと600 px未満の画像は、拡大も縮小もせず、画質優先の版のままにします。このときは、画像の下の帯に、縦長・横長の画像の読みやすさを保ったことが表示されます。
Chromeでの私たちのテストでは、6000 × 4000の画像が2000 × 1333になり、PDFは175 KBから58 KBになりました。1170 × 12000のスクリーンショットは600 × 6154になり、PDFは404 KBから104 KBになって、文字も読めるままでした。12000 × 1000のパノラマは7200 × 600になり、PDFは122 KBから65 KBになりました。
PNGのPDFがこのサイズになる理由
PDFのサイズは、ロスレスで格納された画像データでほぼ決まります。広い単色の部分が多いスクリーンショットやグラフはよく圧縮されるので、それらのPDFは小さくなることがよくあります。PNGで保存した写真は、ロスレスで格納するのに多くのバイトが必要で、PDFも大きいままです。この場合、小さくする方法はサイズ優先だけです。
実際のサイズを確かめる
PDFを保存をタップすると、画面下部の帯にページ数、実際のファイルサイズ、縮小された画像があればその枚数が表示されます。比べたいときは、まず画質優先で保存し、サイズ優先に切り替えてもう一度保存してください。
どちらを選ぶか
- 画質優先のままにするのは、細かい文字の入ったスクリーンショット、拡大したり印刷したりするグラフ、保管しておくものすべてです。
- サイズ優先を選ぶのは、2000 pxを超える大きな画像がサイズの上限に引っかかり、それらの画像でピクセルが減ってもかまわない場合です。長いスクリーンショットは短辺を600 px以上残すので普通の文字は読めますが、とても小さな文字は読みにくくなることがあります。