function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec là một hàm trợ giúp quyết định thuần túy, so sánh các ước lượng EncodedBytes ghi trên ứng viên và trả về codec nào nên lưu trữ ảnh
Mỗi codec được cho phép trước tiên được kiểm tra tính đủ điều kiện: picJpeg đòi hỏi không có alpha, ảnh không nhị phân, 8 bit mỗi thành phần, 1, 3 hoặc 4 thành phần, và số màu duy nhất không rõ hoặc lớn hơn 256; picJpx đòi hỏi ảnh không nhị phân với ít nhất 8 bit mỗi thành phần và 1 đến 4 thành phần; picCcittGroup4 đòi hỏi ảnh nhị phân không có alpha, 1 bit mỗi thành phần, và một thành phần duy nhất; picFlate chấp nhận ít nhất 1 bit mỗi thành phần và ít nhất 1 thành phần
Trong số các codec đủ điều kiện, giá trị EncodedBytes dương nhỏ nhất thắng cuộc, và quyết định báo cáo OriginalBytes, SelectedBytes và SavedBytes
ReplaceOriginal chỉ là True khi người thắng cuộc không phải là picKeepOriginal và SavedBytes đạt tới MinimumSavingBytes; trong trường hợp ngược lại, quyết định được đặt lại thành picKeepOriginal với số byte tiết kiệm bằng không
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;