function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec е чист помощник за вземане на решение, който сравнява оценките EncodedBytes, записани върху кандидата, и връща кой кодец трябва да съхрани изображението
Всеки допустим кодец първо се проверява за пригодност: picJpeg изисква липса на alpha, изображение, което не е бинарен, 8 бита на компонент, 1, 3 или 4 компонента и непознат или по-голям от 256 брой уникални цветове; picJpx изисква изображение, което не е бинарен, с поне 8 бита на компонент и от 1 до 4 компонента; picCcittGroup4 изисква бинарен образ без alpha, 1 бит на компонент и един компонент; picFlate приема поне 1 бит на компонент и поне 1 компонент
Сред пригодните кодеци печели най-малката положителна стойност EncodedBytes, а решението докладва OriginalBytes, SelectedBytes и SavedBytes
ReplaceOriginal е True само когато победителят не е picKeepOriginal и SavedBytes достига MinimumSavingBytes; в противен случай решението се нулира до picKeepOriginal с нула спестени байта
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;