透過PNGの透かしで白い枠を出さない方法
透過PNGのロゴを作って写真に乗せたのに、白い四角の中に収まって出てきた——。透明の設定が失敗したわけではなく、どこかで平坦化されただけです。アルファチャンネルがどこで失われるかを理解すれば、止め方も正確に分かります。
「白い枠」の正体
透過PNGはアルファチャンネルを持っています。これは「ここにロゴ、そこには何もない」というピクセルごとの不透明度マップです。何かがこのチャンネルを無視すると、透明のはずのピクセルが単色(たいてい白)で埋められ、四角が出てしまいます。
よくある原因は次の2つです。
アルファチャンネルが失われる場所
| 原因 | 何が起きるか | 直し方 |
|---|---|---|
| ロゴがJPGで保存されていた | JPGにはアルファチャンネルがないため、背景が白で焼き込まれる | ロゴを背景透明のPNGとして保存し直す |
| アプリが不透明なキャンバスに平坦化する | PNGのアルファを無視し、白い単色の上に合成する | 本物のアルファで合成するツールを使う |
| 書き出しでJPGに再エンコードされる | きれいに重ねても、書き出し時に平坦化される | 書き出しまで透かしの透明を保つ |
*写真そのもの*をJPGで保存するのは問題ありません。写真は不透明だからです。問題になるのは、写真に合成する前に透かしの透明が捨てられてしまう場合だけです。
透明をきれいに保つには
ほぼすべてのケースは、次の2つのルールでカバーできます。
1. 本物の透過PNGを渡す。 ロゴを暗い背景の上で開いてみて、白い四角が見えたら、背景を消して書き出し直します。
2. アルファで合成するツールを使う。 ロゴの柔らかな輪郭や切り抜きの形が、四角として貼られるのではなく、写真になじんで溶け込みます。
透過の透かし、しくみを解説。
透過PNGを写真に入れると白い背景が付くのはなぜ?
PNGが実は透明でない(JPGとして保存・変換されたことが多く、JPGにはアルファチャンネルがありません)か、アプリがPNGのアルファで合成せず白いキャンバスに平坦化したかのどちらかです。本物の透過PNGとアルファ対応の合成があれば、枠は消えます。
写真をJPGで保存すると透かしの透明が消えますか?
最終画像は平坦化されますが、写真は不透明なので問題ありません。大切なのは、写真に透かしを乗せる工程でアルファが尊重されていることです。その後、合成後の画像をJPGで書き出すのは普通のことです。
PNGが本当に透明か確かめるには?
暗い色や色付きの背景の上で表示してみてください。透明な部分は背景が透けます。代わりに白い四角が見えたら、そのファイルは透明ではなく、書き出し直しが必要です。