function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec je čistý rozhodovací pomocník, ktorý porovná odhady EncodedBytes zaznamenané na kandidátovi a vráti, ktorý kodek má obrázok uložiť
Každý povolený kodek sa najprv skontroluje na oprávnenosť: picJpeg vyžaduje žiadnu alfu, nebinárny obraz, 8 bitov na zložku, 1, 3 alebo 4 zložky a neznámy alebo väčší než 256 počet unikátnych farieb; picJpx vyžaduje nebinárny obraz s aspoň 8 bitmi na zložku a 1 až 4 zložkami; picCcittGroup4 vyžaduje binárny obraz bez alfy, 1 bit na zložku a jedinú zložku; picFlate prijíma aspoň 1 bit na zložku a aspoň 1 zložku
Medzi oprávnenými kodekmi vyhráva najmenšia kladná hodnota EncodedBytes a rozhodnutie hlási OriginalBytes, SelectedBytes a SavedBytes
ReplaceOriginal je True, len keď víťaz nie je picKeepOriginal a SavedBytes dosiahne MinimumSavingBytes; inak sa rozhodnutie resetuje na picKeepOriginal s nulovými ušetrenými bajtmi
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;