(57)【特許請求の範囲】
【請求項１】
コンピュータの処理ユニットが実行するインク情報付きの画像ファイルを作成する処理方法であって、
前記処理ユニットが電子インクから少なくとも１つのビットマップ画像を作成するステップと、
前記処理ユニットが、記憶媒体を用いて、前記ビットマップ画像を画像ファイルの画像フィールドに格納するとともに、前記電子インクに関連するカラー、ペンの幅、ペンの圧力、ペンの角度、ペン先の速度の少なくとも１つを含むインク情報の少なくとも一部分を前記画像ファイルのコメントフィールドまたは追加フィールドに格納することにより、インク情報付きの画像ファイルを作成するステップと、
を含むことを特徴とする処理方法。
【請求項２】
請求項１に記載の処理方法において、前記ビットマップ画像を作成するステップは、さらに、
前記処理ユニットが、前記ビットマップ画像を別の画像に変換することを含むことを特徴とする処理方法。
【請求項３】
請求項１に記載の処理方法において、前記インク情報付きの画像ファイルを作成するステップは、さらに、
前記処理ユニットが、前記インク情報の前記少なくとも一部分を格納するために必要なブロックの数を判断し、
前記処理ユニットが、判断した前記ブロックの数に基づいて、前記インク情報の前記少なくとも一部分を、前記ブロックの中に収まるように分割することを含むことを特徴とする処理方法。
【請求項４】
請求項３に記載の処理方法において、前記ブロックは同じサイズをもつことを特徴とする処理方法。
【請求項５】
請求項３に記載の処理方法において、前記ブロックは可変サイズをもつことを特徴とする処理方法。
【請求項６】
請求項３に記載の処理方法において、前記ブロックは識別子 (ID) バイトをもつことを特徴とする処理方法。
【請求項７】
請求項３に記載の処理方法において、前記ブロックは終了バイトをもつことを特徴とする処理方法。
【請求項８】
コンピュータの処理ユニットが実行する電子インクを再構築する処理方法であって、
画像ファイルを前記処理ユニットが受信するステップと、
前記画像ファイルは少なくとも１つのコメントフィールドを含んでいるかどうかを前記処理ユニットが判断するステップと、
前記コメントフィールドを含んでいる場合、電子インクに関連するカラー、ペンの幅、ペンの圧力、ペンの角度、ペン先の速度の少なくとも１つを含むインク情報が前記少なくとも１つのコメントフィールドに存在するかどうかを前記処理ユニットが判断するステップと、
前記インク情報が存在する場合、前記処理ユニットが、前記インク情報を前記コメントフィールドから抽出するステップと、
を含むことを特徴とする処理方法。
【請求項９】
請求項８に記載の処理方法において、さらに、
前記処理ユニットが、前記抽出したインク情報をオブジェクトとして所定のメモリにセーブするステップを含むことを特徴とする処理方法。
【請求項１０】
請求項８に記載の処理方法において、さらに、
前記処理ユニットが、前記抽出したインク情報を拡張メタファイルとして所定のメモリにセーブするステップを含むことを特徴とする処理方法。
【請求項１１】
請求項８に記載の処理方法において、さらに、
前記処理ユニットが、前記画像ファイルを処理するステップを含むことを特徴とする処理方法。
【請求項１２】
請求項８に記載の処理方法において、さらに、
前記処理ユニットが、前記画像ファイルを所定のメモリにセーブするステップを含むことを特徴とする処理方法。
【請求項１３】
コンピュータの処理ユニットが実行する電子インクを表示する処理方法であって、
前記処理ユニットが、電子インクのビジュアル描画を収めている画像フィールドと該電子インクと関連するカラー、ペンの幅、ペンの圧力、ペンの角度、ペン先の速度の少なくとも１つを含むインク情報を収めている少なくとも１つのコメントフィールドからなる画像ファイルを受け取るステップと、
前記処理ユニットが、前記画像ファイルをモニタ装置に表示するステップと、
を含むことを特徴とする処理方法。
【請求項１４】
請求項１１に記載の処理方法において、さらに、
前記処理ユニットが、前記インク情報を削除するステップを含むことを特徴とする処理方法。
【請求項１５】
コンピュータの処理ユニットにより処理される電子インクのデータ構造が格納されているコンピュータ可読記録媒体であって、前記データ構造は、
画像を収めている第１領域と、
少なくとも１つのコメントフィールドを収めている第２領域とから構成され、
前記コメントフィールドには電子インクと関連するカラー、ペンの幅、ペンの圧力、ペンの角度、ペン先の速度の少なくとも１つを含むインク情報が収められており、
前記画像は、前記電子インクをビジュアル化したものを表現していることを特徴とするコンピュータ可読記録媒体。
【請求項１６】
電子インクと該電子インクに関連するカラー、ペンの幅、ペンの圧力、ペンの角度、ペン先の速度の少なくとも１つを含むインク情報をもつ画像ファイルを記憶するためのシステムであって、
前記電子インクと前記インク情報を受信して、前記電子インクから作成した画像と前記インク情報とを格納した画像ファイルを作成し、該インク情報が該画像ファイルの少なくとも１つのコメントフィールドに収まるように該インク情報を構文解析する処理ユニットと、
前記インク情報付きの前記画像ファイルを格納するための記憶媒体と、
を備えていることを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像ファイル内の情報の伝達に関する。さらに具体的には、本発明は、電子インクに関わる補足的情報を格納するための画像ファイルの使い方に関する。
【０００２】
【従来の技術】
代表的なコンピュータシステム、特に、Microsoft WINDOWS（登録商標）などの、グラフィカルユーザインターフェース (graphical user interface  GUI) システムを使用するコンピュータシステムは、キーボードのように、テキストを入力するための１つまたは２つ以上の個別的入力デバイスから、またマウスのように、ユーザインターフェースを駆動するための１つまたは２つ以上のボタンを備えたポインティングデバイスから、ユーザ入力を受け取るように最適化されている。
【０００３】
一部のコンピューティングシステムでは、ユーザが利用できる入力・対話システム (input and interaction system) は、ペン状のスタイラスを使用して情報をシステムに入力できるようにすることによって拡張されている。このスタイラスは、キーボード（データ入力用）に取って代わると共に、マウス（制御用）にも取って代わっている。また、あるコンピューティングシステムでは、手書きの電子情報または電子インク (electronic ink) を受信し、その電子インクを即時にテキストに変換するようにしている。他のシステムでは、電子インクを手書きの形体のまま残しておくことを可能にしている。
【０００４】
インターネット上で情報をやりとりする能力が向上するのに伴い、ユーザは、電子インクを種々の目的のためにやりとりすることを望んでいる。例えば、あるユーザは、ドローイングプログラム (drawing program：描画プログラム) でピクチャを描画し、その結果の画像を別のユーザに送信することがある。両方のユーザが同じドローイングパッケージを使用している場合には、画像を受け取る側のユーザは、送信されてきた画像を修正または再使用することができる。しかし、画像を受け取る側のユーザがドローイングパッケージを持っていないときは、そのユーザは、送られてきた画像を見ることができない。さらに、ユーザ間で標準ファイルフォーマットを使用することが事前に合意されていたときは、画像をあらかじめ決めたファイルフォーマットでセーブ（保存）することは、送信側ユーザに任されることになる。複数のユーザが配布リストにのっているときは、送信側は、ユーザの各々が画像ファイルを見ることができるようにするために、必要なだけのファイルフォーマットで画像ファイルをセーブしなければならない。しかし、画像と対話し、あるいは画像を修正することが許されるのは、オリジナルファイルフォーマットでファイルを受信したユーザだけであるのが一般である。
【０００５】
【発明が解決しようとする課題】
電子インクの分野においては、あるユーザが電子インクをすべてのユーザに送信することを可能にし、すべてのユーザが、ユーザのシステムの能力に関係なく、少なくとも電子インクを見ることができるようにし、他方では、もっと強力なユーザはオリジナルの電子インクを利用できるようにする、ことはいまだに存在していない。
【０００６】
【課題を解決するための手段】
本発明の態様は、上述した課題の１つまたは２つ以上を取り扱っている。本発明の態様によれば、画像ファイルの使用によって電子インクを伝達することを可能にし、画像ファイルの中では、インクのビジュアル描画は画像としてストアされ、電子インクに関する情報は、１つまたは２つ以上の追加フィールドまたはコメントセクションにストアされている。非インク対応アプリケーション (non-ink-enabled application) では、エンドユーザには、インクの画像を見る能力を与えることができるので、インクストロークに関連するビジュアル描画を受信することができる。インク対応アプリケーション (ink-enabled application) では、エンドユーザには、オリジナルインクとそれに関連する豊富な属性群やその他の情報を与えることが可能になっている。
【０００７】
上記およびその他の態様は、添付図面と以下の説明の中で取り上げられている。
【０００８】
上で概要説明した本発明の態様と共に、以下で詳しく説明する本発明の種々実施形態の理解を容易にするために、以下では、添付図面を参照して説明することにする。なお、図面は単なる例示であり、これらに限定されるものではない。
【０００９】
【発明の実施の形態】
本発明の態様によれば、電子インクは、補足的情報付き画像ファイルとしてストアされる。画像ファイルと補足的情報を受け取る個人は、システムまたはアプリケーションがそれを許している限り、補足的情報から再構築された画像および/または電子インクを見ることができる。
【００１０】
説明の便宜上、以下の説明は、次のような項目に分かれている。すなわち、インクの特性、用語、汎用コンピュータ、インク情報付き画像ファイルの使い方、インク情報付き画像ファイルの作成、およびストアされたインク情報の取り出し、である。
【００１１】
［インクの特性］
電子インク（またはインク）とは、ストロークのシーケンス（連続）のことであり、そこでは、各ストロークは、点のシーケンスから構成されている。点は種々の公知手法を使用して表すことができる。そのような手法としては、デカルト座標 (X, Y)、極座標 (r, Θ)、およびこの分野では公知である他の手法がある。
【００１２】
インクペンを使用するユーザには公知であるように、物理的インク（インク筒付きペンを使用して紙の上に描かれる種類のインク）は、ラインセグメント（線分）によって接続された一連の座標よりも多くの情報を伝達することができる。例えば、物理的ペンは、ペンの圧力を（インクの濃さによって）、ペンの角度を（ラインまたはカーブセグメントの形状と離散点周りのインクの挙動によって）、およびペン先の速度を（直線性、ライン幅、およびラインまたはカーブの進路上のライン幅の変化によって）反映することができる。
【００１３】
物理的インクの外観と感触が得られるようにするために、電子インクでは、さらに、インクストロークおよびインクストロークに関連する属性(プロパティ)がストアされ、インクがもっと完全にレンダリング(画像データ生成)されるようにしている。インクは、一連のストロークと一連の属性としてストアすることができる。その他の場合には、インクは、一連の複雑な属性と共にストアされ、そこでは、属性は独自の属性をもっている。インクの属性の例をいくつか挙げると、カラー、幅、スタイラスとタブレット間の圧力、スタイラスとタブレット間の角度、ペン形状、などがある。多くのアプリケーションでは、これらの属性だけで十分であるが、電子インクは、別のアプリケーションによって生成される顧客属性（および他のデータ）を含むように拡張可能になっている。すべてのストロークと値は、余剰情報（excess information）と一緒に直接にストアすることができる。しかし、別バージョンのインクでは、ストアされるインクの物理サイズを最小限にするために、可能な限り余剰情報を除去する配慮がなされている。
【００１４】
インクオブジェクトとそのインクオブジェクト内のストロークを定義するために使用される属性は、スコープ (scope：範囲) が可変になっている。例えば、ある属性は、インクオブジェクト内のすべてのインクストローク（例えば、ペン先の形状）に適用されることがある。他の属性は、特定の点（例えば、スタイラスがそこからストロークを開始する点）だけに関係することもある。他の属性は特定のストロークに関係することがあるのに対し、他の属性は、ハードウェアによって報告された情報パケット（例えば、ペンの座標、圧力、角度、報告された座標間の時間インターバルなど）に関係することもある。要するに、属性は異なるスコープレベルをもっている。
【００１５】
属性を効率よくストアするために、一部の属性は、明示的に指定することができ、他の属性は、黙示になっている。単純な例では、すべての属性をデフォルトの属性にできるので、インクオブジェクトの中では指定されていない。そのため、インクオブジェクトはXとY座標値だけをもつことが可能になっている。別の例では、インクオブジェクトは、インクオブジェクト全体に影響する属性をもつことができるが、これらの属性はインクオブジェクトの中に指定されている。第３の例では、一部のストロークは、第１の属性集合をもち、他のストロークは第２の属性集合をもつことが可能になっている。これらの属性は、初期時にインクオブジェクトの先頭に定義することができ、個々のストロークは、以前に定義された属性を必要時に参照することができる。このように属性を定義したあとで、その属性を参照するようにすると、属性をストアするときの効率が向上することになる。このことが顕著に現れるのは、属性の数が増加し、属性を参照するインクストロークの数が増加するのに伴って、インクオブジェクトが大きくなったときである。
【００１６】
［用語］
インク (ink)：本発明では、属性（プロパティ）をもつストロークのシーケンスまたは集合をいう。ストロークのシーケンス（連続）としては、一定順序のストロークがある。そのシーケンスは、キャプチャ（取り込み）された時間別にも、ストロークがページ上に現れた場所別にも、並べることができる。他の順序も可能である。ストロークの集合としては、ストロークまたは不規則（unordered）ストロークのシーケンスまたはその任意の組み合わせがある。
【００１７】
ストリーム (stream)：データ構造を構成するストロークのシーケンスであり、属性を含む場合と、含まない場合とがある。
【００１８】
インクオブジェクト (ink object)：属性付きまたは属性なしで、インクのストリームをストアしているデータ構造をいう。
【００１９】
ストローク (stroke)：キャプチャされた点のシーケンスまたは集合をいう。例えば、レンダリングされるとき、点のシーケンスはライン（線）と接続することができる。別の方法として、ストロークは、ある点および次の点の方向のベクトルとして表すことができる。要するに、ストロークは、点の基礎となる表現および/または点を接続しているものに関係なく、インクに関係する点またはセグメントの任意の表現を包含することを意味している。
【００２０】
点 (point)：空間内のロケーション（位置）を定義する情報をいう。例えば、点は、キャプチャする空間（例えば、デジタイザ上の点）、バーチャルインク空間（キャプチャされたインクがそこに置かれる空間内の座標）、および/または表示空間（ディスプレイデバイスの点またはピクセル）に対して定義することができる。
【００２１】
［汎用コンピュータ］
図１は、本発明の種々の態様を実現するために使用することができる従来の、汎用デジタルコンピューティング環境を示す概要図である。図１に示すように、コンピュータ１００は、処理ユニット１１０と、システムメモリ１２０と、システムメモリを含む種々のシステムコンポーネントを処理ユニット１１０に結合しているシステムバス１３０とを具備している。システムバス１３０は、数種のバス構造のいずかにすることが可能であり、その中には、種々のバスアーキテクチャのいずれかを採用しているメモリバスや、メモリコントローラ、ペリフェラル（周辺）バス、ローカルバスなどが含まれている。システムメモリ１２０としては、リードオンリメモリ (read only memory  ROM)１４０とランダムアクセスメモリ (random access memory  RAM)１５０がある。
【００２２】
起動時のときのように、コンピュータ１００内の構成要素間で情報を転送するのを支援する基本ルーチンからなる基本入出力システム (basic input/output system  BIOS)１６０は、ROM １４０に格納されている。コンピュータ１００は、ハードディスク（図示せず）との間で読み書きを行うハードディスクドライブ１７０、取り外し可能磁気ディスク１９０との間で読み書きを行う磁気ディスクドライブ１８０、およびCD-ROMや他の光媒体などの、取り外し可能光ディスク１９２との間で読み書きを行う光ディスクドライブ１９１も装備している。ハードディスクドライブ１７０、磁気ディスクドライブ１８０、および光ディスクドライブ１９１は、それぞれハードディスクドライブインターフェース１９２A、磁気ディスクドライブインターフェース１９３、および光ディスクドライブインターフェース１９４を介してシステムバス１３０に接続されている。これらのドライブとそれぞれに関連するコンピュータ可読媒体は不揮発性ストレージとして、パーソナルコンピュータ１００のためのコンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータを格納している。この分野の精通者ならば理解されるように、コンピュータによってアクセス可能であるデータを格納しておくことができる、他のタイプのコンピュータ可読媒体を、例示の動作環境で使用することも可能である。そのような媒体としては、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイ (Bernoulli) カートリッジ、ランダムアクセスメモリ (RAM)、リードオンリメモリ (ROM)、などがある。
【００２３】
いくつかのプログラムモジュールは、ハードディスクドライブ１７０、磁気ディスク１９０、光ディスク１９２、ROM １４０またはRAM １５０に格納しておくことができ、そのようなものとしては、オペレーティングシステム１９５、１つまたは２つ以上のアプリケーションプログラム１９６、他のプログラムモジュール１９７、およびプログラムデータ１９８がある。ユーザは、キーボード１０１やポインティングデバイス１０２などの、入力デバイスを通してコマンドと情報をコンピュータ１００に入力することができる。その他の入力デバイス（図示せず）としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ（衛星放送受信アンテナ）、スキャナなどがある。上記および他の入力デバイスは、システムバスに結合されたシリアルポートインターフェース１０６を通して処理ユニット１１０に接続されていることが多いが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス (universal serial bus  USB) などの、他のインターフェースで接続することも可能である。さらに、これらのデバイスは、該当のインターフェース（図示せず）を通してシステムバス１３０に直接に結合することもできる。モニタ１０７や他のタイプのディスプレイデバイスも、ビデオアダプタ１０８などの、インターフェースを介してシステムバス１３０に接続されている。モニタのほかに、パーソナルコンピュータは、スピーカやプリンタなどの、他のペリフェラル出力デバイス（図示せず）も装備しているのが代表的である。ある実施形態では、ペンデジタイザ１６５と付属ペンまたはスタイラス１６６は、手書き入力をデジタルでキャプチャ（取り込み）するために用意されている。図には、ペンデジタイザ１６５とシリアルインターフェースポート１０６の間のコネクションが示されているが、実際には、ペンデジタイザ１６５は、この分野では公知であるように、直接にも、あるいはパラレルポートや他のインターフェースおよびシステムバス１３０を介しても、処理ユニット１１０に結合することが可能になっている。さらに、デジタイザ１６５は、図示では、モニタ１０７から切り離されているが、デジタイザの利用可能入力エリアは、モニタ１０７の表示エリアと共存することが可能になっている。さらに、デジタイザ１６５はモニタ１０７に内蔵させることも、あるいは別デバイスとして、モニタ１０７の上に設置するか、付属させることも可能である。
【００２４】
コンピュータ１００は、リモートコンピュータ１０９のような、１つまたは２つ以上のリモートコンピュータとの論理コネクションを使用するネットワーキング環境で動作させることができる。リモートコンピュータ１０９は、サーバ、ルータ、ネットワークPC、ピアデバイス（peer device）または他の共通ネットワークノードにすることが可能であり、図１にはメモリストレージデバイス１１１だけが示されているが、コンピュータ１００に関して上述したエレメントの多くまたは全部を装備しているのが代表的である。図１に示す論理コネクションとしては、ローカルエリアネットワーク (local area network  LAN)１１２と広域ネットワーク (wide area network  WAN)１１３がある。このようなネットワーキング環境は、オフィス、企業内コンピュータネットワーク、イントラネットおよびインターネット (the Internet) で、ありふれたものとなっている。
【００２５】
LANネットワーキング環境で使用されるときは、コンピュータ１００は、ネットワークインターフェースまたはアダプタ１１４を通してローカルネットワーク１１２に接続されている。WANネットワーキング環境で使用されるときは、パーソナルコンピュータ１００は、インターネットなどの、広域ネットワーク１１３上のコミュニケーションを確立するためのモデム１１５や他の手段を装備しているのが代表的である。モデム１１５は内蔵型と外付け型があり、どちらも、シリアルポートインターフェース１０６を介してシステムバス１３０に接続されている。ネットワーキング環境では、パーソナルコンピュータ１００に関連して上述したモジュールまたはその一部は、リモートのメモリストレージデバイスに置いておくことが可能である。
【００２６】
以上から理解されるように、図示のネットワークコネクションは単なる例示であり、コンピュータ間の通信リンクを確立する他の手法を使用することも可能である。TCP/IP、Ethernet（イーサネット（登録商標））、FTP、HTTPなどのように、種々の周知プロトコルのいずれかが存在することが前提となっているので、システムをクライアント/サーバ構成で動作せることができ、ユーザはWeb（ウェブ）ベースのサーバからWebページを検索することが可能になる。種々の従来Webブラウザのいずれも、Webページ上のデータを表示して、操作するために使用することができる。
【００２７】
［インク情報付き画像ファイルの使い方］
図２は、本発明の種々の態様に従って、追加的情報が格納されている画像ファイルを作成するプロセス（処理手順）と、作成後の画像ファイルの使い方を示す図である。インクの作成を可能にするアプリケーションまたは環境は、インクアプリケーション２０１として示されている。次に、インクのビジュアル描画を表している画像が、画像生成プロセス２０２で作成される。このプロセス２０２はアプリケーション２０１の一部にすることも、アプリケーション２０１から独立に呼び出される（call）ようにすることも可能である。プロセス２０２の出力は、画像ファイル２０３と、その画像ファイル２０３に関連して画像ファイルに格納されているインク情報２０５である。インク情報２０５は、図２に示すように、画像２０３のコメントフィールド２０４にストアしておくことができるが、画像２０３と関連付けることもできる。
【００２８】
画像２０３と情報２０５を結合したものは、種々の受け取り側アプリケーションまたは環境に送信することができる。これらのアプリケーションまたは環境の中には、ストアされたインク情報２０５を読んで、使用する能力をもつものと、そのような能力をもたないものとがある。
【００２９】
インク情報２０４の少なくとも一部を利用する能力をもつアプリケーションまたは環境は、環境２０６として示されている。そこでは、インク情報２０７はアプリケーションまたは環境２０６で使用されている。追加の画像情報は、破線枠２０８で示すように使用される場合と、使用されない場合とがある。例えば、その画像情報は、受信したインク情報に関連する情報のサイズを小さくするために破棄することができる。別の方法として、画像２０８を残しておくと、エンドユーザの機能を強化するができる。例えば、画像２０８は、サムネイル (thumbnail) 画像または受信インクのプレビュー画像として使用するために残しておくことができる。
【００３０】
非インク対応アプリケーションまたは環境２０９では、画像２１０が使用される。この非インク対応アプリケーション/環境２０９では、インク情報２０５は画像２１０に付属したままになっていることもあれば、取り除かれていることもある。この非インク対応アプリケーション/環境２０９では、画像２１０に関連するインク情報２０５が理解されないことがあるので、インク情報が無視または削除されることがある。
【００３１】
インク情報２０５を使用できることもあれば、使用できないこともあるアプリケーションの例としては、ワードプロセッシング、Eメール、スプレッドシート（表計算）、データベース、メモ帳、プロジェクト管理、カレンダリング、その他の関連アプリケーションがある。さらに、インク情報を使用する機能は、その環境に置いておくこと（例えば、オペレーティングシステムまたはこの機能を別のアプリケーションへ移植することを可能にするアプリケーションへのリンク）ができるので、すべてのアプリケーションが自身でインクを使用できるようになっている必要はない。
【００３２】
図３は、いくつかのサンプルの画像ファイルのフォーマット（書式）を説明する図である。当然に理解されるように、他の画像ファイルフォーマットを使用することも可能である。提示のサンプルの画像ファイルフォーマットを使用すると便利であるのは、そこにコメントフィールドがあるからである。コメントフィールドを使用すると、ある単一のファイルを別のアプリケーションまたは環境に送ることができる。しかし、当然に理解されるように、コメントフィールドのない、他の画像ファイルフォーマットでも、インク情報を画像ファイルと関連付けて、画像ファイルと関連インクとを送信することにより、使用することができる。
【００３３】
図３は、GIF、JPEG、PNGおよびPDF/Postscript（ポストスクリプト；商標）の画像ファイルを一覧表化したものである。これら４画像ファイルは、いずれも、コメントフィールドをもっているか、任意データを許容している。以下の説明では、任意データの挿入は、コメントフィールドと引用している個所に含まれている。JPEGを除くすべてのファイルは、透過性 (transparency) をもっている。GIFは１ビットが透過であるのに対し、PNGは全チャネルが透過になっている。JPEG、PNG、およびPDF/Postscriptファイルはハイグラフィックス忠実度 (high graphics fidelity) であるのに対し、GIFだけは、カラー深度 (color depth) が８ビットになっている。最後に、GIFとPNGは、不可逆 (lossy)圧縮または可逆 (lossless) 圧縮になっている。JPEGは不可逆圧縮であるのに対し、PDF/Postscriptファイルは可逆圧縮になっている。
【００３４】
インク情報を取り入れるためには、他の種々の拡張性メカニズムを使用することができる。GIFは、例えば、アプリケーションエクステンションブロック (application extension block) をもっている。他のファイルフォーマットにも、インク情報をそこにストアすることができる、追加の場所を設けることが可能である。例えば、インク情報は、画像の終了ブロックの終わりの後に入れることが可能である。あるいは、例えば、画像パレット (image palate) 自体を、インク情報をストアする媒体として利用することができる。例えば、複数のエントリを同一カラーのパレットにストアし、画像ビットを使用してインクをストアすることができる。
【００３５】
［インク情報付き画像ファイルの作成］
以下では、関連インク情報付きの画像ファイルを作成するためのプロセスについて説明する。当然に理解されるように、種々のプロセスは同時並行に実行させることも、順次に実行させることもできる。さらに、実行順序も必要に応じて変更することができる。最後に、一部のステップは、処理時間を最小限にするために省くことも、あるいは他のステップと結合することも可能である。
【００３６】
図４は、本発明の実施形態に従って関連インク情報付きの画像ファイルを作成するためのプロセスの例を示す図である。ステップ４０１において、システムはインクをセーブ（保存）する要求を受け取る。このセーブ要求は、特殊なセーブコマンドにすることができ、そこでは、インクは種々のアプリケーションまたは環境に移植可能になるように直接に指示されることになる。別の方法として、このセーブ要求は汎用セーブコマンド (generic save request) にすることもでき、そこでは、すべてのセーブオペレーションは、画像ファイルと関連付けてインク情報をストアすることになる。
【００３７】
ステップ４０１でインクをセーブする要求には、インクの識別子(ID)を含めることもできる。このIDは、インクオブジェクト、インクストローク、複数のインクオブジェクト、複数のストロークなどに関係づけることができる。このセーブ要求４０１には、インクのファイルサイズを含めることもできる。さらに、インクがシステムのメモリに置かれている場合は、要求にバッファの内容を含めることができる。
【００３８】
ステップ４０２では、インクのビジュアル描画を表しているビットマップが作成される。ステップ４０３では、このビットマップは、望みの画像フォーマット（例えば、上記に挙げたようなフォーマット）に変換される。
【００３９】
コメントフィールドは、フィールドごとに設定サイズ (set size) にすることも、サイズに上限を設けることも、あるいは無制限のサイズにすることもできる。無制限サイズの例では、インクオブジェクト（または他のインク情報）はコメントフィールドに入れることができる。上限を設けたサイズまたは設定サイズの例では、コメントフィールドは、設定サイズのブロック数で分けることができる。従って、情報セットが上限を設けたブロックサイズ以下のときは、１つのブロックだけが使用されることになる。ブロックの実際のサイズは、情報のサイズである場合と、ブロックの全サイズである場合とがある。複数のブロックが使用されるような例では、最終ブロックを除くすべてのブロックは、設定サイズブロックの全サイズにすることができ、最終ブロックは設定サイズブロックより小であるか、上限を設けたサイズの全サイズのどちらかになっている。ステップ４０５では、インクオブジェクト（または他のインク情報）をストアするために必要なブロックの数が判断される。次に、ステップ４０６では、インクが１つまたは複数のコメントブロックに構文解析 (parse) される。
【００４０】
最後に、ステップ４０４では、ステップ４０３からのインクの画像が、ステップ４０６からの１つまたは複数のコメントブロックと結合され、インク情報付き画像ファイルが得られる。
【００４１】
上述したプロセスとは別のプロセスでは、ステップ４０２と４０３が結合されてビットマップ画像の作成がスキップ（省略）され、ステップ４０５と４０６による代わりに、必要とするインク情報を格納するために可変サイズのコメントブロックを１つだけ使用するようにしている。
【００４２】
図５は、本発明の実施形態に従って電子インク情報をストアするためのブロックの数を判断する（５０１）の一例を示す。ある環境では、インク情報をGIFファイルのコメントセクションにストアしておきたい場合がある。GIFコメントフィールドは、各々が256バイトのブロック構造になっている。以下は、インク情報をどのようにするとGIFのコメントフィールドにストアできるかを、１つの例で示したものである。当然に理解されるように、ストアは他の方法で行うことも可能であり、その方法もこの例の範囲に含まれるものである。
【００４３】
ステップ５０２では、インク情報をストアするために必要なブロックの数が、インク情報のサイズを各ブロックのサイズで除することによって概算される。ここでは、例えば、GIFの場合の各コメントブロックのサイズは256バイトになっている。１ヘッダバイト（例えば、"0x21"）は、その後に続くものがコメントブロックであることを示すために使用されることができる。コメントブロックのサイズを指定するには、１バイトが使用される。当然に理解されるように、その他の事情の場合には、そのあとに続くものがコメントブロックであることを、他のコンテンツで指定することもできる。その結果、255バイトが利用可能なまま残されることになる。他の例では、コメントブロックのサイズを指定するために２またはそれ以上のバイトが使用できるので、インク情報のために利用できるスペースが増加することになる。
【００４４】
次に、インク情報をストアするために必要な正確なブロック数が、ステップ５０３−５０５で判断される。ステップ５０３では、ステップ５０２で得たブロックの数（整数のブロック数）に255を掛けると、オリジナルインク情報のサイズと等しくなるかどうかのチェックが行われる。そうであれば、ステップ５０２で得たブロックの数はステップ５０４でそのまま残され、そうでなければ、インク情報をストアするために必要なブロックの数がステップ５０５で＋１だけ増加される。他の例では、このチェックは、ステップ５０２からのすべての結果を集計するか、あるいはステップ５０２からの必要ブロック数に１ブロックを加え、端数として残っているブロックを切り捨てるようにするだけで、省くことができる。
【００４５】
図６は、本発明の実施形態に従ってインク情報がプロセス５０１によってコメントブロックに構文解析される例を示す図である。インク情報６０２は、各々が255バイトのブロックに分割されている。そのあと、システムはインク情報６０２をたどっていき、その情報を各コメントブロックのバイト1から255（合計255バイト）に書き込んでいく。例えば、先頭ブロック６０３はインクデータＡを収めているものとして示され、最終ブロック６０４は、インクデータＮを収めているものとして示されている。構文解析されるインク情報は、オリジナルインクの一部である場合と、全部である場合とがある。
【００４６】
図５と図６とは別の例では、インク情報は、254で除することが可能であり、そこでは、各コメントブロックのサイズは、各コメントブロックに指定されている。そのため、その結果の構造は、コメントブロックのID（バイト０）とコメントブロックのサイズ（バイト１）のあとに、インク情報（バイト2-255）が続くことになる。
【００４７】
図７は、本発明の実施形態に従ってインク情報をストアしているコメントブロックの種々の例を示している。ステップ４０４の最終データ記憶では、７０１で表された画像情報（データ）が、コメントブロック７０２−７１３と結合される。最後に、このデータ構造に終了ブロック７１４が付加される。この終了ブロックは、例えば、関連情報付きの画像ファイルのサイズが分かっているときは、省くことができる。この例では、システムは、画像ファイル内のインク情報の終わりにいつ到達したかを知ることができる。このことは、非インク対応アプリケーションが、コメントブロック内のインク情報を即時にスキップして通り抜ける必要があるときに、好都合である。
【００４８】
コメントブロックの種々の例は図７に示されている。先頭コメントブロックはバイト７０２−７０４で表され、そこでは、バイト０はコメントブロックID（識別子）７０２、バイト１はコメントブロックのサイズ７０３、バイト２−２５６はインクデータＡ７０４である。別の実施形態では、インクブロックのサイズは省くことが可能であり、記憶のために利用できるバイト数は、255から256に増加することになる。
【００４９】
最終コメントブロックはバイト７０５−７０７で示されている。バイト０はコメントブロックID７０５、バイト１はコメントブロック７０６のサイズ、バイト２−２５６はインクデータＮ７０７である。最終コメントブロック７０５−７０７が使用されるのは、各コメントブロックのサイズが固定である場合、またはインク情報が最終コメントブロックの全スペースを満たす場合である。インク情報が最終コメントブロックを完全に満たさないときは、バイト７０８−７１３で表したものが使用される。
【００５０】
バイト０は、コメントブロックID ７０８と７１１を表している。バイト１は、コメントブロック７０９と７１２のサイズを表している。バイト２−２５６は、インクデータＮ−１７１０を表し、バイト２−Ｘは残りのインクデータＮを表し、そこでは、インクの最終ブロックをストアするために必要なバイトは、利用可能な全バイト（２−２５６）未満で済むことになる。
【００５１】
最後に、終了ブロック７１４がコメントセクションの終わりおよび/またはインク情報付き画像ファイルの終わりを示すために追加される。
【００５２】
さらに、コメントブロックIDタグは、コメントブロックが互いに後に続く順序になっているときは省くことができる。次の例はインク情報の総バイト数が２６０バイトである場合であり、そこでは、１つのコメントブロックIDだけが使用されている。２６０はコメントブロックサイズの２５５より大きいので、２つのコメントブロックが使用されている。最初のコメントブロックは、次のような構成になっている。
【００５３】
【表１】
0004246531.tif 000002
【００５４】
当然に理解されるように、上述したように他の変更を使用することも可能であり、そのような変更として、コメントブロックのサイズ指示子 (size designator) を省いたものや、さらに大きくしたものなどがあるが、これらに限定されない。
【００５５】
図８Ａ−図８Ｅは、本発明の実施形態による画像情報とコメントブロックに関連するデータ構造の種々の例を示している。要約すると、画像情報とコメントブロックは種々に組み合わせて使用することができる。
【００５６】
図８Ａは、画像情報８０２とコメントセクション８０３が単独の場合と、追加情報（破線枠で図示）で取り囲まれている場合を示している。図８Ｂは、画像情報セクション８０５と８０７とがコメントフィールド８０６によって分割されている場合の例を示している。図８Ｃは、画像情報フィールド８０９によって分割されているコメントフィールド８０８と８１０とを示している。図８Ｄは、画像情報セクション８１１、８１３が、コメントセクション８１２、８１４と交互に現れている場合を示している。図８Ｅは、図８Ｄとは逆であり、コメントフィールド８１５、８１７のセクションが、画像情報セクション８１６、８１８と交互に現れている場合を示している。
【００５７】
［ストアされたインク情報の取り出し］
インク情報付き画像ファイルを受け取ったとき、インク対応アプリケーションまたは環境では、画像ファイルがかぎつけ (sniff) られ、そこにインク情報が入っているかどうかが判断される。このインク情報は、コメントフィールドの１つに入っているヘッダ値（見出し部の値）で示し、インク情報が画像ファイルにストアされていることをこのヘッダ値からアプリケーション/環境に知らせることができる。
【００５８】
インク情報が見つかると、インク対応アプリケーション/環境では、インク情報が抽出され、インク情報はインクオブジェクト、OLEオブジェクト、または拡張メタファイル（enhanced metafile）に再アセンブルされる。
【００５９】
本発明は請求項に明確化されているが、本発明によれば、本明細書の中で上述した構成要素およびステップ（処理工程）は、任意の組み合わせ、またはそれから派生する組み合わせで使用されることを意図しているので、それらの請求項は本発明の例示的なものである。従って、本発明は、種々の他の任意の組み合わせでも明確化することができ、そこでは、明細書、請求項、および図面に記載されている１つまたは複数の構成要素が、種々の組み合わせまたはそれから派生する組み合わせで組み込まれている。当該技術のいわゆる当業者ならば、本明細書に記載されている内容から当然に理解されるように、本発明の態様のその他の組み合わせは、単独の場合でも、本明細書に上述されている１つまたは２つ以上の構成要素またはステップと組み合わせた場合でも、本発明の改良または変更形態としても、本発明の一部としても利用することが可能である。本明細書に記載されている本発明の説明は、そのような改良または変更形態をすべて包含するものである。例えば、種々の実施形態において、一定のデータ配列が示されているが、データをどのように再配列する場合も、本発明の範囲に含まれるものである。また、サイズ（例えば、バイト数またはビット数で表した）などの、ある種の属性（プロパティ）の単位が使用されている個所では、他の任意の単位も、使用されることが意図されている。
【図面の簡単な説明】
【図１】本発明の種々の態様を実現するために使用できる汎用デジタルコンピューティング環境を示す概略図である。
【図２】本発明の種々の態様による、追加情報がそこにストアされている画像ファイルを作成するためのプロセスと、作成後の画像ファイルの使い方を示す図である。
【図３】本発明の種々の態様による種々の画像ファイルフォーマットと関連情報を示す図である。
【図４】本発明の実施形態による関連インク情報をもつ画像ファイルを作成するためのプロセスの例を示す図である。
【図５】本発明の実施形態による電子インク情報をストアするためのブロックの数を判断するプロセスの例を示す図である。
【図６】本発明の実施形態によるコメントブロックの中で構文解析される情報の例を示す図である。
【図７】本発明の実施形態によるインク情報をストアするコメントブロックの種々の例を示す図である。
【図８Ａ】本発明の実施形態による画像情報とコメントブロックに関連するデータ構造の種々の例の一つを示す図である。
【図８Ｂ】本発明の実施形態による画像情報とコメントブロックに関連するデータ構造の種々の例の他の一つを示す図である。
【図８Ｃ】本発明の実施形態による画像情報とコメントブロックに関連するデータ構造の種々の例のさらに他の一つを示す図である。
【図８Ｄ】本発明の実施形態による画像情報とコメントブロックに関連するデータ構造の種々の例のさらに他の一つを示す図である。
【図８Ｅ】本発明の実施形態による画像情報とコメントブロックに関連するデータ構造の種々の例のさらに他の一つを示す図である。
【符号の説明】
２０１  インクアプリケーション
２０２  画像生成プロセス
２０３  画像ファイル
２０４  コメントフィールド
２０５  インク情報
２０６  インク対応アプリケーション/環境
２０７  インク情報
２０８  画像
２０９  非インク対応アプリケーション/環境
２１０  画像
６０２  インク情報
６０３  先頭ブロック
６０４  最終ブロック
７０１  画像情報
７０２、７０５、７０８、７１１  コメントブロックID（識別子）
７０３、７０６、７０９、７１２  コメントブロックのサイズ
７０４、７０７、７１０、７１３  インクデータ
７１４  終了ブロック
【図１】
0004246531.tif 000003
【図２】
0004246531.tif 000004
【図３】
0004246531.tif 000005
【図４】
0004246531.tif 000006
【図５】
0004246531.tif 000007
【図６】
0004246531.tif 000008
【図７】
0004246531.tif 000009
【図８Ａ】
0004246531.tif 000010
【図８Ｂ】
0004246531.tif 000011
【図８Ｃ】
0004246531.tif 000012
【図８Ｄ】
0004246531.tif 000013
【図８Ｅ】
0004246531.tif 000014