Image XObject
Image XObjectは、画像データとそれに関連する属性(寸法、色空間、圧縮設定など)をカプセル化するPDFの外部オブジェクトの一種です。
Image XObjectは、画像データとそれに関連する属性(寸法、色空間、圧縮設定など)をカプセル化するPDFの外部オブジェクトの一種です ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。これらのオブジェクトはコンテンツストリームの外部で定義され、ページ上に画像を表示する必要がある場合にDoオペレーターを使用して参照されます。Image XObjectを使用することで、画像データを複製することなく、複数のページで同じ画像を効率的に再利用できます。
Image XObjectは、ラスター画像データとその特性を指定する辞書を含むPDFファイル内のストリームオブジェクトです。コンテンツストリーム内に画像データを直接埋め込むインライン画像とは異なり、Image XObjectはPDFのオブジェクト階層に格納される間接オブジェクトであり、ページのResources辞書から名前によって参照されます ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。XObject辞書には、それがImage XObjectであることを識別するために値が/Imageである/Subtypeエントリと、/Width、/Height、/ColorSpace、/BitsPerComponentなどの必須エントリが含まれます。実際の画像データはストリームコンテンツを形成し、DCTDecode(JPEG)、FlateDecode、JBIG2Decodeなどのさまざまなフィルターを使用して圧縮される場合があります。
Image XObjectは、ベクターグラフィックスやその他のPDFコンテンツを含むForm XObjectや、BI/ID/EIオペレーターシーケンスを使用してコンテンツストリームに直接埋め込まれるインライン画像とは異なります。外部オブジェクトアプローチにより、ファイルの最適化が向上し、同じ画像を異なる変換を適用して複数回参照できるようになります。
PDF生成または操作を行う開発者にとって、Image XObjectを理解することは、効率的で適切に構造化されたPDFファイルを作成するために不可欠です。同じ画像が複数回表示される場合、インライン画像の代わりにImage XObjectを使用することで、画像データが一度だけ保存され必要に応じて参照されるため、ファイルサイズが削減されます。このアプローチは、PDFプロセッサーがImage XObjectをキャッシュして効率的に再利用できるため、解析性能とメモリ管理も向上させます。
PDF/UAなどの標準に準拠したアクセシブルなPDFを扱う場合 ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) 、支援技術のために適切な代替テキストとタグ付けを伴うXObjectとして画像を適切に構造化することが重要になります。さらに、Image XObjectは、透明度のためのソフトマスク、異なる出力条件のための代替画像、画像の帰属のためのメタデータなど、インライン画像では提供できない高度な機能をサポートします。
PDFプロセッサーがコンテンツストリーム内でImage XObject名をオペランドとするDoオペレーターに遭遇すると、ページのResources辞書から対応するXObjectを取得します。プロセッサーは、指定されたフィルターに従って画像データをデコードし、グラフィックス状態の現在の変換マトリックス(CTM)に従ってレンダリングします ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。
Image XObject辞書は、いくつかの重要なプロパティを指定する必要があります:
- /Widthと**/Height**は、サンプル単位での画像の寸法を定義します
- /ColorSpaceは、色データの解釈方法(DeviceRGB、DeviceCMYK、ICCBasedなど)を指定します
- /BitsPerComponentは、各色成分に使用されるビット数を示します
- /Filter(オプション)は、ストリームデータに適用される圧縮方法を指定します
ストリーム内の画像データは、サンプルの行として編成され、各サンプルはピクセルの色値を表します。Doオペレーターが呼び出された時点のCTMによって、画像がページ上のどこにどのように表示されるかが決定されます。デフォルトでは、Image XObjectはユーザー空間で1×1単位の正方形を占めるため、通常はDoを呼び出す前にスケーリングと配置の変換が適用されます。
高度なユースケースでは、Image XObjectには、透明度のための/SMask、レンダリングインテントのための/Intent、スムージングヒントのための/Interpolate、XMPメタデータストリームのための/Metadataなどのオプションエントリを含めることができます。
- Content Stream(コンテンツストリーム) – ページの視覚的外観を記述する命令のシーケンス。Image XObjectを呼び出すDoオペレーターを含みます
- Doオペレーター – XObject(Image XObjectを含む)を現在のページにペイントするグラフィックスオペレーター
- Form XObject – 再利用可能なPDFコンテンツ(通常はラスター画像ではなくベクターグラフィックス)を含む外部オブジェクト
- Resources辞書 – リソース名(XObject名を含む)をコンテンツストリームで使用するための対応するオブジェクトにマッピングする辞書
- インライン画像 – 外部Image XObjectとは対照的に、BI/ID/EIオペレーターを使用してコンテンツストリーム内に直接埋め込まれた画像データ
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
