iconutilで作ったアイコンの表示が崩れるとき

Macアプリのアイコンは原料となる所定サイズのpngファイルからiconutilによって作られるわけですが、遊んでいたらicnsにした途端表示が崩れる事例に遭遇したのでメモ。

  • プレビューで確認すると、原料のpngは各サイズとも問題ないが、icns変換後は各サイズとも崩れる。
  • 崩れるというのは、縞々になるというか、がびがびになるというか、ずれたのが重なるというか、インターレス風というか、なんとも言葉で表現しづらい崩れ方。ずれ幅というか縞々幅というかはサイズによらず一定。

最終的に判明した原因はICCプロファイル。

  • Photoshop(手元はCS4)はpng保存時にICCプロファイルの保存を尋ねてこないが、実はICCプロファイルを埋め込んでいるらしい。確かにFinderから見るとICCプロファイルが入っている。
  • 表示が崩れるのは、たまたま変な設定になってしまっていた(sRGBじゃなかった)作業用色空間が埋め込まれたpngを食わせたせい。sRGB変換して食わせると解決。

確かにAppleのガイドラインにもsRGBプロファイルのPNG推奨って書いてある(汗
英語でググってもいまひとつ情報がなかったので最後にひと言。
If you get corrupted .icns image with iconutil, check that the sRGB color profile is embedded in your PNG files in .iconset.