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 registadas no candidato e devolve que codec deve guardar a imagem
Cada codec permitido é primeiro verificado quanto à elegibilidade: picJpeg exige ausência de alpha, imagem não bilevel, 8 bits por componente, 1, 3 ou 4 componentes, e um número de cores únicas desconhecido ou superior a 256; picJpx exige uma imagem não bilevel com pelo menos 8 bits por componente e 1 a 4 componentes; picCcittGroup4 exige uma imagem bilevel sem alpha, 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 reporta OriginalBytes, SelectedBytes e SavedBytes
ReplaceOriginal é True apenas quando o vencedor não é picKeepOriginal e SavedBytes atinge MinimumSavingBytes; caso contrário a decisão é reposta em picKeepOriginal com zero bytes guardados
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;