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 或索引色彩空间数组 |
| Filter | PDF 流筛选器名称,例如 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