Goo*_*bot 11 pdf adobe png image imagemagick
我可以使用DCTDecode过滤器将JPG图像插入到PDF文档中.我认为图像的所有参数也应该相同PNG,除了应该是的过滤器FlateDecode.但是,当我尝试PNG使用相同的参数插入时,PNG图像在PDF文档中不可见.
更新:我得出结论,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
Run Code Online (Sandbox Code Playgroud)
但是我如何分离PNG原始数据和alpha pixels通道ImageMagick?换句话说,什么ImageMagick命令可以生成PDF_RAW_DATA和ALPHA_PIXELS插入到pdf文件中.
@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 ...
Run Code Online (Sandbox Code Playgroud)
很可能您没有解码 PNG 图像。
PDF 不直接支持 PNG。我的意思是它们不支持 JPEG 的方式。
在将 PNG 嵌入 PDF 之前,您必须从 PNG 生成原始未压缩的光栅字节。如果您愿意,您可以使用 Flate 或 LZW 编码器对光栅字节进行编码。