function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec je čisti pomoćnik za odlučivanje koji uspoređuje procjene EncodedBytes zabilježene na kandidatu i vraća koji kodek treba pohraniti sliku
Svaki dopušteni kodek najprije se provjerava za podobnost: picJpeg zahtijeva bez alfe, slike koja nije bilevel, 8 bita po komponenti, 1, 3 ili 4 komponente te nepoznat ili veći od 256 broj jedinstvenih boja; picJpx zahtijeva sliku koja nije bilevel s najmanje 8 bita po komponenti i 1 do 4 komponente; picCcittGroup4 zahtijeva bilevel sliku bez alfe, 1 bit po komponenti i jednu komponentu; picFlate prihvaća najmanje 1 bit po komponenti i najmanje 1 komponentu
Među podobnim kodecima pobjeđuje najmanja pozitivna vrijednost EncodedBytes, a odluka izvještava OriginalBytes, SelectedBytes i SavedBytes
ReplaceOriginal je True samo kada pobjednik nije picKeepOriginal i kada SavedBytes dostigne MinimumSavingBytes; inače se odluka resetira na picKeepOriginal s nulom ušteđenih bajtova
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;