【コラム】

OS X ハッキング!

105 肝心なときに見つからないアイコンを探して

    海上忍  [2004/09/06]

    今、先月購入した第4世代iPodを弄りながらアップルストアのページを眺めている。9月に入ったというのに、まだ専用のスキンは出ないのだろうか? 傷を覚悟でラフに使うという選択肢もあるのだろうけれど……この手の小物、買い始めるとキリがないんだよなあ。

    さて、今回はOS Xにおけるアイコンの保存ルールについて。OS Xのアイコンは優れたデザインのものが多く、意外に利用する機会は多いが、ファイルシステムのあちこちに分散されているため、肝心なときに見つからないという経験を持つユーザも少なくないはず。アイコン探しに無駄な時間を費やさないためにも、この際しっかりとルールを理解してしまおう。

    アイコンに関する基礎知識

    OS Xでは、アイコンは「アプリケーション固有のもの」と「システム汎用のもの」の2種類に分類できる。前者は各アプリケーションのバンドル(Finder上ではファイルとして扱われるフォルダの1種)に格納されているため、他のアプリケーションから利用されることはないが、後者はアプリケーション共通の"部品"としてツールバーなどに利用される。

    アイコンのデータ形式も2種類ある。OS X以前から利用されてきたアイコンリソースと、最大128x128ピクセルのアイコンを作成できるICNSファイルだ。後者はファイル内部に4種類の大きさのアイコン画像を持てるため、拡縮してもジャギーが発生しにくいアイコンをデザインできる。

    なお、任意のアイコン(カスタムアイコン)を使用する方法は、OS X以前のFinderと変わらない。Finderで情報ウインドウを開き、目的のアイコンを選択した状態でcommand-c(コピー)、command-v(ペースト)すればOK。この方法では、一般的なファイルとバンドル構造を持つアプリケーションのどちらも、リソースファイル(「Icon」ファイル)として情報が蓄えられる。

    アイコンファイルを活用するには

    アイコンファイル(*.icns)はPreview.appに関連付けられているので、ダブルクリックすればイメージを確認できる。通常サイズの異なるアイコンイメージが数種類収録されているので、目的のサイズを表示(Preview.appでは各アイコンデータは1つのページとして扱われる)してからコピーしよう。

    より高度に活用する場合には、開発環境に含まれる「icns Browser」と「Icon Composer」が役に立つ。いろいろ試してみれば、アイコンファイルが単なるサイズの異なる画像の寄せ集めではなく、マスクイメージと組み合わせることで透過表示を実現していることがわかるはずだ。

    アプリケーション独自のアイコン

    アプリケーション固有のアイコンは、バンドル内部のContents→Resourcesディレクトリに格納される。通常の方法では表示できないので、Finderで目的のアイコンを選択し、アクションボタンで[パッケージの内容を表示]を選択すればOK。一般的にアイコンのファイル名はアプリケーション名と同じだが、コンパイル時の設定次第で変わるため、見当たらない場合は片っ端からICNSファイルを開いて確認しよう。このファイルを入れ替えれば、アプリケーションのアイコンは完全に変更できる。

    なお、この方法が使えるのはバンドル構造を持つアプリケーションだけ。MS-OfficeなどFinderのメニューに[パッケージの内容を表示]を表示されないもの(CFM/PEF形式)は、情報ウインドウでコピー/ペーストするしかない。

    汎用のアイコン

    ウインドウのツールバーやダイアログボックスに使用されるボタン類など、アプリケーション間で共有されるアイコンデータは「SystemIcons.bundle」(フルパスは/System/Library/CoreServices/SystemIcons.bundle)に集められている。このバンドルは普通のフォルダのように扱えるので、Contents→Resourcesの順にFinderでフォルダを開けばOK。140を超えるアイコンファイルが表示されるはずだ。

    機能別のアイコン

    OS Xでは、ドライバやなどカーネルの機能を補佐するプログラムは「KEXT」と呼ばれ、/System/Library/Extensionsに置かれる。磁気ディスク/光ディスクのアイコンはKEXTごとに用意され、前述したアプリケーションと同じ構造(バンドル)の領域に収録されている。主要なものを下表に抜粋したので、DVDやメモリカードのアイコンが必要な場合はチェックしてみよう。

    アイコンファイルを持つKEXT(主要なものを抜粋)

    KEXTの名称 アイコンの内容
    IOCDStorageFamily.kext CD-ROMとCD-R/RW
    IODVDStorageFamily.kext 各種DVDディスク
    IOSCSIArchitectureModelFamily.kext 各種磁気ディスク(外付け)
    OStorageFamily.kext 各種磁気ディスク(内蔵)

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン