2013-01-08 50 views
8

DCTDecodeフィルタを使用してJPGイメージをPDFドキュメントに挿入できます。私はFlateDecodeでなければならないフィルタを除いて、すべてのパラメータがPNGイメージでも同じでなければならないと思います。ただし、同じパラメータを使用してPNGを挿入しようとすると、PNG画像はPDFドキュメントに表示されません。透明なPNGをPDFに挿入するには?

UPDATE:私は、PDFファイルが

1 0 obj << 
/Type /XObject 
/Subtype /Image 
/Width 512 
/Height 512 
/BitsPerComponent 8 
/ColorSpace /DeviceRGB 
/SMask 9 0 R 
/Length 134753  
/Filter /FlateDecode 
>> 
stream 
PNG_RAW DATA 
endstream 
endobj 
9 0 obj << 
/Type /XObject 
/Subtype /Image 
/Width 512 
/Height 512 
/BitsPerComponent 8 
/ColorSpace /DeviceGray 
/Length 12087  
/Filter /FlateDecode 
>> 
stream 
ALPHA_PIXELS 
endstream 
endobj 

を含むべきであるという結論になりましたが、どのよう私はImageMagick経由PNG生データとalpha pixelsを分けることができますか?つまり、ImageMagickコマンドでは、PDF_RAW_DATAALPHA_PIXELSを生成してpdfファイルに挿入することができます。

答えて

4

ほとんどの場合、PNG画像はデコードされませんでした。

PNGはPDFで直接サポートされていません。つまり、JPEGはサポートされていません。

PDFに埋め込む前に、元の非圧縮ラスタバイトをPNGから生成する必要があります。必要に応じて、FlateまたはLZWエンコーダでラスタバイトをエンコードすることができます。ここで

+0

感謝を。私は実践的な解決策を見つけるために私の質問を編集しました。 – Googlebot

+1

いくつかの制限がありますが、PNGはPDFで直接サポートされています。 PNGはPNG8(カラータイプ3)、最大256色、透過マスク(アルファチャンネル)なし、インターレースなし。 – zfr

+0

@zfrこのようなPNGが埋め込まれたPDFの例がありますか? – Bobrovsky

6

@Bobrovsky

は一例です:http://pd4ml.com/i/pd4ml18130.pdf

は、より正確には:あなたは絶対にそれで無操作でPNGを埋め込むことはできません。 PNGをセクションに分割する必要があります。IDAT(画像データ)はバイトストリームとしてそのままPDFに、PLTE(パレット)は色空間定義に、iCCPはオプションでカラープロファイルオブジェクトに移動します。

オブジェクトディクショナリは、そのように見えることがあります。問題を指しているため

<< 
/Filter /FlateDecode 
/Type /XObject 
/Subtype /Image 
/BitsPerComponent 8 
/Length 1277 
/Height 250 
/Width 250 
/DecodeParms << 
    /BitsPerComponent 8 
    /Predictor 15 
    /Columns 250 
    /Colors 1 
>> 
/ColorSpace [/Indexed /DeviceRGB 1 <1989d1ffffff>] 
>> 
stream 
... IDAT bytes ... 
+0

詳細な説明をありがとうございます。私はPNGを埋め込むためのそのような方法を知らなかった。 – Bobrovsky

関連する問題