function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec adalah helper keputusan murni yang membandingkan estimasi EncodedBytes yang tercatat pada kandidat dan mengembalikan codec mana yang seharusnya menyimpan gambar
Setiap codec yang diizinkan diperiksa lebih dulu kelayakannya: picJpeg mensyaratkan tanpa alpha, gambar non-bilevel, 8 bit per komponen, 1, 3, atau 4 komponen, dan jumlah warna unik yang tidak diketahui atau lebih dari 256; picJpx mensyaratkan gambar non-bilevel dengan sekurangnya 8 bit per komponen dan 1 sampai 4 komponen; picCcittGroup4 mensyaratkan gambar bilevel tanpa alpha, 1 bit per komponen, dan satu komponen; picFlate menerima sekurangnya 1 bit per komponen dan sekurangnya 1 komponen
Di antara codec yang layak, nilai EncodedBytes positif terkecil yang menang, dan keputusannya melaporkan OriginalBytes, SelectedBytes, serta SavedBytes
ReplaceOriginal bernilai True hanya ketika pemenangnya bukan picKeepOriginal dan SavedBytes mencapai MinimumSavingBytes; jika tidak, keputusan direset menjadi picKeepOriginal dengan byte terhemat nol
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;