DeduplicateSimilarImages
Manipulação de imagens, Otimização
Descrição
Localiza image XObjects indiretos perceptualmente semelhantes, redireciona suas referências para uma imagem canônica determinística e, opcionalmente, remove os objetos duplicados
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
Sintaxe
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer): Integer; Overload;
Function TPDFlib.DeduplicateSimilarImages(
MaxHashDistance, MaxMeanError, MaxChannelError,
Options: Integer;
Out Stats: TPDFlibImageSimilarityDedupStats): Integer; Overload;
Parâmetros
| MaxHashDistance | Distância de Hamming máxima, de 0 a 7, entre os dois difference hashes de 64 bits |
|---|---|
| MaxMeanError | Diferença média absoluta máxima de canal, de 0 a 255, entre as amostras decodificadas |
| MaxChannelError | Diferença absoluta máxima, de 0 a 255, para qualquer canal de cor amostrado |
| Options | PDF_RESOURCE_DEDUP_DRY_RUN, PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, ambos os sinalizadores, ou 0 |
| Stats | Recebe contadores de decodificação, candidatos, comparação, erros aceitos, referências, payload e coleta de objetos |
Valores retornados
| Valor positivo | O número de objetos de imagem semelhantes consolidados ou relatados por um dry run |
|---|---|
| 0 | Nenhum par aceitável foi encontrado, nenhum documento está carregado, ou um limite ou opção é inválido |
Observações
O menor número de objeto e geração de cada grupo aceito se torna a imagem canônica
/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
Imagens que não podem ser decodificadas são ignoradas e contadas em DecodeFailures
O hash é dividido em oito bandas indexadas, o que limita a busca por candidatos na faixa de distância suportada antes que as amostras decodificadas sejam comparadas
Esta é uma operação visual intencionalmente aproximada porque amostra uma grade fixa de 64 × 64, então diferenças menores que a grade de amostragem podem passar despercebidas mesmo com todos os limites em zero
Use DeduplicateResources quando prova byte a byte for necessária, e use um dry run mais GetSimilarImageDeduplicationReportJSON antes de escolher limites para conteúdo desconhecido
Exemplo
var
Stats: TPDFlibImageSimilarityDedupStats;
Merged: Integer;
begin
Merged:= PDF.DeduplicateSimilarImages(2, 3, 12,
PDF_RESOURCE_DEDUP_GARBAGE_COLLECT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Veja também
GetSimilarImageDeduplicationReportJSON, TPDFlibImageSimilarityDedupStats, DeduplicateResources