DeduplicateSimilarImages
图像处理、优化
说明
查找感知上相似的间接图像 XObject,将其引用重定向到确定性的规范图像,并可选择移除重复对象
候选项必须在排除已编码容器字段后具有相同语义图像字典,然后通过 64 位差异哈希阈值和 64 × 64 解码颜色样本比较
语法
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer;
Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;
参数
| MaxHashDistance | 两个 64 位差异哈希之间的最大汉明距离,范围为 0 至 7 |
|---|---|
| MaxMeanError | 解码样本中每通道从 0 到 255 的最大平均绝对差 |
| MaxChannelError | 任意采样颜色通道从 0 到 255 的最大绝对差值 |
| Options | PDF_RESOURCE_DEDUP_DRY_RUN、PDF_RESOURCE_DEDUP_GARBAGE_COLLECT、两个标志,或 0 |
| Stats | 接收解码、候选、比较、接受错误、参考、有效负载和对象集合计数器 |
返回值
| Positive value | 干运行合并或报告的相似图像对象数量 |
|---|---|
| 0 | 未找到可接受的配对、未加载文档,或者阈值或选项无效 |
备注
每个已接受组中最小的对象编号和代号将成为规范图像
/Length、/Filter 和 /DecodeParms 描述编码存储且可能不同,而尺寸、颜色空间、位深度、蒙版、解码数组、插值、可选内容、元数据及其他语义字典条目必须一致
无法解码的图像会被跳过,并计入 DecodeFailures
哈希被拆分为八个索引频带,在比较解码样本前,会将支持距离范围内的候选搜索限制在界内
这是有意采用的近似视觉操作,因为它会采样固定的 64 × 64 网格,即使所有阈值均为零,也可能遗漏小于采样网格的差异
需要字节级精确证明时使用 DeduplicateResources,并在为陌生内容选择阈值前先进行试运行,再使用 GetSimilarImageDeduplicationReportJSON
示例
var
Stats: TPDFlibImageSimilarityDedupStats;
Merged: Integer;
begin
Merged:= PDF.DeduplicateSimilarImages(2, 3, 12,
PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
另请参阅
GetSimilarImageDeduplicationReportJSON、TPDFlibImageSimilarityDedupStats、DeduplicateResources