ColorSync in Mozilla
プラットフォーム不依存の色表示をMozillaブラウザで作成するプロジェクト
Web上での発表や、商取引が重要となってきたのにつれて、ソースから出力への色の管理方法がブラウザの未来において不可欠のものになってきた。 特に、サーバー上に保存されているソース画像が表示設定を補正していなければ、HTML出力の様々な画面で違って表示されるということがある。 ColorSyncは印刷や、グラフィックアートの業界で広く採用されているApple Computerの技術であり、違ったデバイスで補正するのに必要な設定をプラットフォームに提供するものである。 ブラウザと、ColorSyncの融合は、人々が画像のあるWebサイトを訪問するだけでなく、それらを作成者が意図したように見るということであり、 それによって人々は作品をオンラインカテゴリから注文し、メールでそれが届いたときにその色で驚かされずにすむ。
ColorSync Building Blocks - ICC Profiles
ColorSyncは、デバイスの<カラープロファイル>に基づくもので、ICC形式のファイルに納められた特定のデバイスに対応した設定データーによって、デバイスの設定を行う。
以下の画像フォーマット向けの設定がICCプロファイルによってなされる。
- TIFF
- JPEG
- GIF
- PNG
- PICT, and possibly more
しかしながら、それらのフォーマットに従ったプロファイルを受け付けるブラウザは、埋め込まれたプロファイルを見つけ、それらのうちソースあった色を利用する。 これは、すでに Internet Explorer 4.0.1 にてサポートされている。
付け加えるならば、HTMLの<IMG>や<BODY>のエレメントにおいて、プロファイルはその画像と関連付けられるもので、全てについて設定されるのではない。 付け加えられたHTMLエレメントの詳細や、ブラウザで画像をプロファイルとともに利用するサンプルサイトは、AppleのColorSyncのWebサイトにある。
埋め込みに対するプロファイルの関連づけの利益は、プロファイルが一度ダウンロードされたら、複数のイメージ・ページや、セッションにおいて利用できると言うことである。 これは、Webサイト構築者に画像を書き直さなくてもいい・HTMLに簡単な付け加えができるなどいくつかの自由度を与える。 GoLiveのCyberStudio 3 では、コンテンツ作成者はプロファイルの関連づけと色の調整の双方を利用できる。
なにがMozillaに付け加えられたか
新しいコードはColorSyncを用いたICCプロファイルを含む画像の色設定の手段を付け加えるものである。 これは、ColorSyncの正式公開版コードではなく、ColorSyncと呼ばれるコードである。 今後、他のOSでも同様に動作するかもしれないが、ColorSyncは現在MacOSのコンポーネントであるからである。 新しいコードは、OSの既存ColorSyncを検査し、ブラウザがICCプロファイル付きの画像にであったとき、その機能を利用する。 追記しておくと、画像は、既存ICCプロファイルを利用するか、その中に含むかを選択できる。 それ故に、我々は、最初に画像デコーダに利用できる画像プロファイルを探す機能を追加した。 次に、我々はネットワークのICCプロファイルのURL(または、ローカルファイル)を取得するコードを新しく付け加えた。 このコードはプロファイルがすでに取得済みかの情報を保持し、もし取得済みならダウンロードしない機能も持っている。 最後に、コードとパフォーマンス設定を通じて機能の利用を設定するユーザーインターフェースが加えられた。
プロジェクトの現況
AppleとMozilla/Netscapeの技術者はこの機能を追加することの様々な問題点を大さっぱな仕様を起草し、改訂することによって議論した。 もしその追加が時節をとらえてブラウザの将来のバージョンに行われ、様々なモジュール所有者の多くの協議の末の外部の助言がAppleのコード記述開始時に色あせていればその追加はより早く行われていただろう。
ColorSyncのアルファーステージがいま、Macプラットフォームでのみならず動き始めたので、Mozillaの機能のどこにでもColorSyncを利用することが可能になるのに対して、フロントエンドを垣根のように利用することと共に、我々はより多くのプラットフォームによらない画像ライブラリにおける機能をできるだけ追加することを決定した。 コードの現在の状況はMacとWinの双方のフロントエンドが、同様にいくつかの新しいIMGCBエントリポイントを持っていて、そのコード自体も同一のものである。 XのフロントエンドはそれらのIMGCBエントリポイントへの半券を持っている状況である。
将来になされるもの
- JPEG/GIFのプロファイルをサポートする
- <IMG... ICCPROFILE=...> のサポート
- <BODY... ICCPROFILE=...> のサポート
- パフォーマンスのサポート : {no matching, match if profile, match to default}
- 印刷時に機能する。なぜなら、デコード時に画像は適応させられるからである。
まだ行われていないもの(将来へ?)
- 色表の取得(コードは存在するが、まだ試験していないので機能させていない)
- PNGフォーマットでのプロファイルのサポート
- プレビューなどの他のカラーマネージメントのサポート
変更は主に画像に関するlibファイルで行われ、拡張命令や新規呼び出しはicc_profile.cという新しいファイルのルーチンとして組み込まれた。 私は、いくつかのレイアウトに関するコードも新しいIMG/BODYタグを解析できるように変更した。 最終的に、フロントエンドのソースコードや付け加えのIMGCBエントリポイントについていえば、Macリソースファイルに新しい'ppob'リソースを加えた。 これは、新規の優遇を可能にし、コードは画像に関するlibファイルに加えられ、読み込まれる。
あなたにできること
上のリストは色表の保管とPNGプロファイルにふれているものである。 ICCプロファイルを可能にするPNG規格はPNGワーキンググループによって付け加えられたところである。 規格表は、以下のサイトにてダウンロードできる。
このプロジェクトでは、コードをjpegとGIFの画像libファイル内の読み込みルーチンに付け加えたが、同じようなコードをPNGの読み込みルーチンにも付け加えられる。 もし、"color world"がうまくいけば、これはメモリに画像を読み込むのに似た利用方法である、情報を再利用できる意義を持ったICCプロファイルのセットからの情報の表を保てるビルドを意味する。 入力ソースと出力プロファイルが複数の画像にて同一であると期待できるなら、いくつかの場合にて有効な前提であると期待できるのでよいアイデアである。 新しいファイルにてこの過程を実行するようなコードがあるが、まだ表には出ていない。
最後に、勇気を持って、まだ細部を詰めていない他のいくつかのなすべきであろうことをあげる。
- 画像圧縮ソフトで、プロファイルをはめ込む・関連付ける
- どのようにMWContextへAVID(MAC)を取り入れるか
- プレビューをColorSyncと一緒に印刷する
- ガンマ値をチェックするモード
- プロファイルの表示リストを現在のページにはめ込む・関連付ける(私はおそらくこれをデバッグのいくつかのポイントのために実行せねばならないだろう)
もし、あなたがMozillaのColorSyncのサポートを手伝うことに興味を覚えたなら、私や、他のMozilla.orgのメンバーに連絡してください。ありがとう。
Eric Broadbent
ebb3@apple.com
August 31, 1998