PNG への ICC プロファイル埋め込み

Photoshop CS と Preview.app を使って実験

Last update: 2008-10-10

PNG ファイルへの ICC プロファイル埋め込みは可能

Firefox のカラーマネージメントをテストしていた時、Photoshop CS はプロファイルを埋め込めないと書いたが、よく調べてみたらきちんと埋め込めることが分かった。ただ、Photoshop の PNG は妙にファイルサイズが大きいことが気になる。

その前に、Adobe CS4 がアナウンスされている今、なぜ CS を使っているか。それも Leopard で。
それはですね、CS2 発売1週間前に購入したにも関わらず、CS から CS2 への無償アップグレードがなかったことに頭にきたこと、CS3 のバグだらけにウンザリしていること、でもってバージョンアップのお金が...
だが、それなりに使い難くても Leopard でそれなりに動いてくれる CS なので、余計な出費を抑えたい昨今、そう簡単にアップグレードはできませんぜ Adobe さんよ。

脱線はこれくらいにして、Photoshop から書き出した PNG ファイルは、保存時にプロファイルの指定がグレーアウトしているのでできないと思っていたら、作業ドキュメント上で プロファイルを使用していれば保存時にも埋め込まれていた。

Photoshop CS の PNG

プロファイルが埋め込まれるのは良いが、Photoshop CS から書き出した PNG は、妙にサイズが大きい。いくら高速な通信環境が普及したとは言え、サイズに無頓着というのは頂けない。なので、品質を保ちながらもサイズを抑える工夫は必要だ。

This JPEG photo is master of sample.

これは JPEG で保存したマスター画像。
210px × 210px の高圧縮ながら、画像サイズは 36KB に収まっている。プロファイルには sRGB IEC61966-2.1 を埋め込んでいるので、若干サイズが肥大するのはしかたがないところ。なお、メタデータは含まれていない。
Firefox 3 のカラーマネージメントを有効にしていれば正しくレンダリングされる。Safari 3.1 の結果と比べてみるのも良い。この結果を基本として PNG 保存方法による違いをテストしてみる。

This PNG photo convert Photoshop image into PNG from save as command of Photoshop

左の画像は、元データの Photoshop フォーマット画像から別名保存で PNG に変換したもの。
この場合は元データに含まれている sRGB IEC61966-2.1 プロファイルも含んだ上で保存されるようで、マスター画像と比べても遜色はないと思う。これは最近まで気がつかなかった。
しかし、妙にファイルサイズが大きく、109KB と、マスター画像の JPEG をはるかに上回っている。
これが Photoshop の PNG でたいへん気になっていたこと。

This PNG photo convert Photoshop image into PNG from 'optimize for web' command of Photoshop

左の画像は、元データの Photoshop フォーマット画像を「Web 用に保存」で PNG に変換したもの。
カラーマネージメントを利用できなかった頃はこのコマンドで PNG に変換していたが、Safari での表示結果に唖然として使わなくなった。また、このコマンドで保存した場合は、プロファイルは埋め込まれない。なので Photoshop の PNG はカラープロファイルを埋め込めないと思い込んでいた。
画像サイズは 16KB と、マスター画像の JPEG よりかなり小さくできるが、見てのとおり、レンダリング結果は振るわず、サイズを小さくできること以外にメリットを見いだせない。

This PNG photo convert Photoshop image into PNG from 'optimize for web' command of ImageReady

これは元データの Photoshop フォーマット画像を ImageReady から「最適化ファイルを別名保存」で PNG 保存したもの。
カラーは256色で割り付けにしているのだが、上の Web 用に保存と同じく劣化したような結果になる。この保存方法でもカラープロファイルは埋め込まれないため、イマイチな結果だ。
画像サイズは 16KB で、これも上の画像と同じ。というか上の方法と何が違うのかよく分からない。

このような感じで、保存時に PNG を指定する方法が一番使えると思い込んで使っていた。サイズの肥大化には目をつぶった男前な方法でだ。
「Web 用に...」と ImageReady を使わなくなった訳はもう一つ有り、時々表示される「保存されるファイルの中に、ラテン文字以外の文字が含まれています。これらのファイル名と互換性のない Web ブラウザやサーバがあります。」のアラート。

Illustrator で元絵を描いて Photoshop に持ち込んだ場合によくでるこのアラート、文字データがどこに有るのか、ファイル名がおかしいのかと、ずいぶん探したのだがさっぱり原因が分からなかった。
気がついたのは、Leopard でのアイコン制作のその後で、アイコンを作っていた時にでていた「The imported image uses premultiplied alpha, which may result in some visual artifacts. For best result, please use images with non-premultiplied alpha.」というメッセージが表示され、プリマルチプライ済みアルファを使用していないイメージを使うように促される件が、Preview.app から PNG に変換すると表示されなくなった時。

上のアラートについては Apple Developer Center の文献を探し回ったのだが、解決につながらなかった。で、もしかしたら ImageReady で表示されるアラートと同じことなのかもしれないと気がついた。
そこで原因が Photoshop で保存した際に埋め込まれるメタデータではなかろうかと、Adobe サイトで情報を集めてみた。
はっきり回答になるデータには行き当たらなかったのだが、多分間違いないと思う。さらに、Photoshop で保存した PNG のサイズが大きいことも、これが原因のような気がする。

Leopard の Preview.app を使う

元画像の Photoshop ファイルを Preview.app で開き、PNG に変換してみる。
Preview.app はすばらしいことに Photoshop フォーマットも開くことができる。ただし、レイヤは一つにまとめられ、単一レイヤに結合(統合ではない)されるので注意すること。その代わりといってはアレだが、アルファ値はきちんと引き継がれるので、背景が透明だったりしても大丈夫だ。

手順はこう。元データを Preview.app で開き、ツールからメニュー下段にある「プロファイルを割り当てる」で sRGB IEC61966-2.1 を選択する。sRGB IEC61966-2.1 はシステム標準で入っていると思うが未確認。

プロファイルを選んで OK をクリックしたら、別名で保存から PNG で保存する。作業はこれだけ。で、下が結果。左が Preview.app で保存した PMG、右が Photoshop で保存した PNG。

Save from Preview.app

This PNG photo convert Photoshop image into PNG from save as command of Photoshop

画像の質とカラーに差は見られない。
ところが、ファイルサイズは Preview.app で保存した PNG は 40KB で、Photoshop の PNG は 108KB となっている。Web 用に保存や ImageReady で保存したものに比べると、Preview.app の PNG もサイズが大きくなっているが、これはプロファイルが埋め込まれているからだろう。
Photoshop との違いは、埋め込まれるメタ情報ではないかと思う。

予想は予想だが、変換を行なっても問題なく、またプロファイルを埋め込みながらもサイズを小さくできる Preview.app での PNG 変換が、一番良いのではないだろうか。
ちなみに、Automator や AppleScript を使うと、Photoshop で調整、リサイズ、レタッチを行なったファイルを、自動的に PNG へ変更して保存させることができる。このスクリプトを作っておくと、面倒くささを感じることもない。

完璧ではないけれど、Preview.app かなり使える

Tiger の頃は Preview.app を使う機会は少なかった。PDF は Adobe Acrobat から製作するし、ローカルの PDF もこっちを利用していた。画像は Photoshop CS で開くように設定していたから、Preview.app が活躍する場面はほとんどなかった。特に機能面が優れているわけでもなく、本当のプレビュー用アプリケーションだと認識していたから、余計に使う機会がなかったと思う。
ところが、Leopard の Preview.app は、ハッキリ言って別物に変身していた。

Tool menu of Preview.app

画像レタッチアプリケーションとしては、お世辞にもパーフェクトとは呼べないが、Preview.app のツールにあるメニューだけでもかなり使える。
カラー調整やサイズ調整は、調整時のスライダーの変更量が数値で表示されないことや、一度行なった調整を覚えていないこと(Automaton を使うとできると聞いた)で、厳密な調整や作業性を考えると Photoshop を使う方が良い。だが、ある程度、またそれほど厳密な調整でなければ Preview でも十分にできる。ちなみに、稚サイトのトップバナーは Preview で画像調製をしている(基本的には Photoshop だけど)。

Inspector window

使える機能としては、インスペクタは Photoshop よりもかなり使い勝手が良い。
じつは、カラープロファイルを埋め込めないと思っていた Photoshop の PNG に、ちゃんとプロファイルが埋め込まれていることを発見したのは Preview.app のおかげだ。

しかし、なんと言ってもありがたい機能は、カラープロファイルの埋め込みぢゃないかな。
印刷用データとなると、プレビュー機能が無いだけに使う気にはなれないが、ウェブ用に Photoshop で完成したデータを変換するなら Preview.app の方が良いことが分かっている。
また、家庭用のプリンターで個人的なプリントを行なう程度なら Preview.app の機能でも十分だと思う。ただし画像そのものの加工はできないので、やはり Photoshop のようなレタッチアプリケーションは必要になる。

Color Adjustment panel

カラー調整は一通りの機能を備えていて、十分なことができる。
それはよいのだが、スライダーがどのくらい動いているのかとか、数値での調整ができないあたりが、せっかくの機能をマイナスにしている。アップルらしいインターフェースで調整量を表示するとか、改善されるとかなり使い勝手が向上するので、要望として出しても良いのではないだろうか。

ColorSync を十分に活かしきれるアプリケーションだけに、HyperCard のように中途半端に放棄せず開発を続けてもらいたい。だって、これは Windows には絶対に真似のできないアプリケーションだから。

Return to Top