function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec es un auxiliar de decisión puro que compara las estimaciones de EncodedBytes registradas en el candidato y devuelve qué códec debe almacenar la imagen
Cada códec permitido se comprueba primero para determinar su elegibilidad: picJpeg exige que no haya alfa, una imagen no bilevel, 8 bits por componente, 1, 3 o 4 componentes y un conteo de colores únicos desconocido o mayor que 256; picJpx exige una imagen no bilevel con al menos 8 bits por componente y de 1 a 4 componentes; picCcittGroup4 exige una imagen bilevel sin alfa, 1 bit por componente y un único componente; picFlate acepta al menos 1 bit por componente y al menos 1 componente
Entre los códecs elegibles gana el valor de EncodedBytes positivo más pequeño, y la decisión informa OriginalBytes, SelectedBytes y SavedBytes
ReplaceOriginal es True solo cuando el ganador no es picKeepOriginal y SavedBytes alcanza MinimumSavingBytes; de lo contrario, la decisión se restablece a picKeepOriginal con cero bytes guardados
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;