2017-09-15 3 views
0

/Filter /DCTDecode(ベースラインJPEG)ストリームのPDFファイルを生成しています。私の入力JPEGファイルにはJFIF APP0マーカーが含まれていますが、Exifマーカーはありません。 JFIFマーカーは、有効であるためにPDFストリームに必ず含まれる必要がありますか、それとも削除できますか?JFIF APP0マーカーは/ Filter/DCTDecode PDFストリームに必要ですか?

答えて

0

PDF仕様バージョン1.7は/Filter /DCTDecodeはJPEGでJFIFマーカー(およびいくつかの他のマーカー)を無視し、それが指定することができ/ColorTransformフィールドを持っているアドビ固有のAPPEマーカーを、respoectsことを説明している、Technical Note #5116: Supporting the DCT Filters in PostScript Level 2を指し、例えばYCbCr(YUV)からRGBへの変換。

JPEGストリームにAdobe固有のAPPEマーカーがない場合、PDFイメージオブジェクトの/ColorTransformフィールドに、使用する変換を指定できます。イメージに3つのコンポーネントがある場合はデフォルト値は1、それ以外の場合は0です。値0は変換なしを意味し、値1はYUVをRGBに変換すること、またはYUVKをCMYKに変換することを意味します。

0

これは、JPEGの本質の中心にある興味深い質問です。 PDFの定義に関しては、私はあなたに答えを与えることはできません。そのためには、それを試して、それが機能するかどうかを確認するだけです。

JPEGの観点からは、ストリームにはファイル形式を定義するAPPnマーカーが含まれている必要があります。そのマーカーがなければ、あなたのストリームは画像をどのように再構成すべきかを言いません。

ファイルフォーマットマーカーがない場合、ほとんどのデコーダは1成分画像がグレースケールであり、3成分画像がYCbCrであると仮定します。これが最も一般的な方法であるため、APP0マーカーを取り除いても問題は発生しません。

+0

説明していただきありがとうございます。私はあなたの答えを受け入れることができません。それは質問に答えないからです。 – pts

+0

PDFは、イメージオブジェクトのストリーム外の '/ ColorSpace'定義(通常は'/ColorSpace/DeviceRGB'または '/ ColorSpace/DeviceGray')を持っています。 '/ Filter/DCTDecode'は、バイトストリーム(JPEGファイル)を別のバイトストリーム(各バイトはカラー値を表します)に変換します。 '/ ColorSpace/DeviceRGB'は3成分のJPEGに使用されるので、フィルタはRGBトリプレットを生成する必要があります。私はこれを深く掘り下げる必要があります。 – pts

関連する問題