すべてのガイド

PNGの透明部分はPDFでどう扱われるか

多くのPNG画像には、背景が透けて見える部分があります。背景のないロゴ、アイコン、透明な背景で書き出したグラフ、切り抜いた商品写真、ウィンドウのスクリーンショットの周りのやわらかい影などです。PNGはこれを、アルファと呼ばれる追加のチャンネルに保存しています。このチャンネルは、ピクセルごとにどれだけ不透明か(完全に不透明、まったく不透明でない、またはその中間のどこか)を示します。このガイドでは、PNG to PDFがこのチャンネルをどう扱うか、そして画面上の結果に驚くことがある理由を説明します。

透明部分はPDFに入る

PDFも透明部分を持つことができます。ソフトマスクと呼ばれる仕組みで、画像の隣に保存される別のグレースケール画像が、各ピクセルをどれだけ表示するかをリーダーに伝えます。PNG to PDFは、PNGのアルファチャンネルをこのマスクに1ピクセルあたり8ビットで書き込みます。ChromeやEdgeなどのChromium系ブラウザでは、マスクにはファイルの値がそのまま入ります。Safariでは、透明部分のあるグレースケールPNGや16ビットPNGのアルファが、255段階のうち1段階ずれることがありますが、目には見えません。つまり、

細かい点を1つ。半透明のピクセルの色は、255段階のうち最大1段階ずれることがあります。ブラウザはこうしたピクセルを乗算済み(プリマルチプライド)の形で扱い、その丸めの跡が残るためです。目で気づくことはありません。

透明色を古い方法、つまりtRNSチャンクで指定しているPNG(パレット画像やカラーキー画像)も開けます。

透明な部分が白く見える理由

PDFのページは白です。リーダーはページを描くとき、その白の上に画像を重ねます。そのため、画像が透明なところでは下のページが見え、そのページは白です。透明な背景のロゴは、白い紙に印刷したロゴのように見えます。ウィンドウのスクリーンショットの影は、デスクトップではなく白の中へ消えていきます。

それでも、透明の情報はファイルの中に残っています。ページを別の色の上に表示するリーダーや、PDFから画像を取り出すツールは、画像をマスクと一緒に受け取ります。

ここから2つのことが言えます。

サイズ優先でも透明部分は保持される

ページ設定のどちらのオプションも、アルファチャンネルを捨てることはありません。画質優先では、画像はソフトマスクとともにロスレスで格納されます。サイズ優先では、大きな画像に小さい候補が用意されますが、これもロスレスで、ソフトマスクも付いています。長辺が2000 px以下の画像はまったく変更されません。どちらのオプションでも、PNGが透明を持てない形式であるJPEGに変わることはありません。候補がいつ使われるかはPNGの画質とPDFのサイズで説明しています。

確認したリーダー

透明部分のあるテスト用PNGからPDFを作り、独立した複数のPDFエンジンで開きました。Poppler(多くのLinuxビューアーのエンジン)、AppleのCore GraphicsとPDFKit、PDFium(Chrome内蔵ビューアーのエンジン)、pdf.js(Firefox内蔵ビューアー)です。白いページの上に描いたとき、どれも期待どおりの結果を、255段階のうち1段階以内の差で表示しました。

これはページの見え方についての話です。特定のアプリがPDFを印刷、編集、変換するときに透明部分をどう扱うかはそのアプリしだいで、すべてを試したわけではありません。

各画像がページ上でどのくらいの大きさになり、周りにどれだけ白が残るかは、PNG画像のページサイズで説明しています。

ブラウザーでPDFを作成する → PNG to PDF