function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec é um auxiliar de decisão puro que compara as estimativas de EncodedBytes registradas no candidato e retorna qual codec deve armazenar a imagem
Cada codec permitido é primeiro verificado quanto à elegibilidade: picJpeg exige ausência de alfa, imagem não bilevel, 8 bits por componente, 1, 3 ou 4 componentes e contagem de cores únicas desconhecida ou maior que 256; picJpx exige uma imagem não bilevel com pelo menos 8 bits por componente e de 1 a 4 componentes; picCcittGroup4 exige uma imagem bilevel sem alfa, 1 bit por componente e um único componente; picFlate aceita pelo menos 1 bit por componente e pelo menos 1 componente
Entre os codecs elegíveis, vence o menor valor positivo de EncodedBytes, e a decisão relata OriginalBytes, SelectedBytes e SavedBytes
ReplaceOriginal é True apenas quando o vencedor não é picKeepOriginal e SavedBytes atinge MinimumSavingBytes; caso contrário, a decisão é revertida para picKeepOriginal com zero bytes economizados
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;