AddImageDirectFromString

图像处理

描述

直接从已编码的图像样本字节创建图像 XObject,而不是检测 PNG、TIFF 或 JPEG 等容器格式

PDF 版本行为:JBIG2Decode 图像滤镜需要 PDF 1.4,而 JPXDecode、Crypt 以及 BitsPerComponent = 16 的图像样本需要 PDF 1.5。当文档设为低于所需版本且未锁定保存版本时,AddImageDirectFromString 会自动提高文档版本,并将 JBIG2Decode filter、JPXDecode filter、Crypt filter 或 16-bit image samples 记录在 AutoBumpedFeatures 中。若调用方锁定了较低的保存版本,兼容性检查会以 LastErrorCode 602 拒绝保存

语法

Delphi

Function TPDFlib.AddImageDirectFromString(Const Source: AnsiString; Width, Height, BitsPerComponent: Integer; Const ColorSpace, Filter, Decode: WideString; Interpolate: Integer): Integer;

参数

Source要存储在图像流中的原始或编码图像数据
Width图像宽度,以像素为单位
Height图像高度(像素)
BitsPerComponent每个采样分量的位数。PDF 图像字典在较早版本中允许 1、2、4 和 8;16 位采样属于 PDF 1.5
ColorSpace图像字典的 PDF 色彩空间名称或数组文本,例如 /DeviceGray、/DeviceRGB 或索引色彩空间数组
FilterPDF 流筛选器名称,例如 FlateDecode、DCTDecode 或 JPXDecode。未筛选数据请使用空字符串
Decode可选 PDF Decode 数组文本。不需要 Decode 条目时传入空字符串
Interpolate非零值会写入 /Interpolate true 标志

返回值

0无法创建图像,或当前 PDF/A 模式禁止请求的筛选器
Non-zero新的 ImageID。创建的图像会被选中以用于后续图像操作

备注

PDF/A 模式拒绝所有部分中的 LZWDecode,并拒绝 PDF/A-1 中的 JBIG2Decode / JPXDecode。调用方负责使 Source 字节与声明的 ColorSpace、Filter、Decode、尺寸和样本深度相匹配

另请参阅

AddImageFromString、AddImageFromFile、AddImageFromStream、DrawImage