DeduplicateSimilarImages
Обработка изображений, оптимизация
Описание
Находит перцептивно похожие косвенные XObjects изображений, перенаправляет их ссылки на детерминированный канонический образ и по желанию удаляет дубликаты
Candidates must have the same semantic image dictionary after excluding encoded-container fields, then pass a 64-bit difference-hash threshold and a 64 × 64 decoded colour-sample comparison
Синтаксис
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer;
Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;
Параметры
| MaxHashDistance | Максимальное расстояние Хэмминга от 0 до 7 между двумя 64-битными хешами различий |
|---|---|
| MaxMeanError | Максимальная средняя абсолютная разница каналов от 0 до 255 по декодированным сэмплам |
| MaxChannelError | Максимальная абсолютная разница от 0 до 255 по любому сэмплированному цветовому каналу |
| Options | PDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, оба флага или 0 |
| Stats | Получает счетчики декодирования, кандидатов, сравнения, допустимых ошибок, ссылок, полезной нагрузки и сборки объектов |
Возвращаемые значения
| Положительное значение | Число схожих объектов изображений, консолидированных или сообщенных пробным запуском |
|---|---|
| 0 | Приемлемая пара не найдена, документ не загружен либо порог или опция недопустимы |
Примечания
Минимальные номер объекта и поколение в каждой принятой группе становятся каноническим изображением
/Length, /Filter, and /DecodeParms describe encoded storage and may differ, while dimensions, colour space, bit depth, masks, decode arrays, interpolation, optional content, metadata, and other semantic dictionary entries must match
Images that cannot be decoded are skipped and counted in
Изображения, которые не удается декодировать, пропускаются и учитываются в DecodeFailures
Хеш разбивается на восемь индексированных полос, что ограничивает поиск кандидатов для поддерживаемого диапазона расстояний до сравнения декодированных выборок
Это намеренно приближенная визуальная операция: она выбирает фиксированную сетку 64 × 64, поэтому различия меньше ячейки выборки могут быть пропущены, даже если все пороги равны нулю
This is an intentionally approximate visual operation because it samples a fixed 64 × 64 grid, so differences smaller than the sampling grid can be missed even when every threshold is zero Use DeduplicateResources when byte-exact proof is required, and use a dry run plus GetSimilarImageDeduplicationReportJSON before choosing thresholds for unfamiliar content
Пример
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