PDFium Delphi Component Docs

Функция SelectPdfImageCodec

Модуль: PDFium
Выбирает наименьшую подходящую перекодировку одного изображения по измеренным размерам кодеков

Syntax

function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
  AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;

Parameters

CandidateTPdfImageCodecCandidate
AllowedCodecsTPdfImageCodecs
MinimumSavingBytesInt64

Return Value

TPdfImageCodecDecision

Description

SelectPdfImageCodec — чистый помощник принятия решений, который сравнивает оценки EncodedBytes, записанные в кандидате, и возвращает, какой кодек должен хранить изображение

Каждый разрешённый кодек сначала проверяется на применимость: picJpeg требует отсутствия альфа-канала, небинарного изображения, 8 бит на компонент, 1, 3 или 4 компонентов, а также неизвестного или превышающего 256 числа уникальных цветов; picJpx требует небинарного изображения с не менее чем 8 битами на компонент и 1–4 компонентами; picCcittGroup4 требует бинарного изображения без альфа-канала, 1 бита на компонент и единственной компоненты; picFlate принимает не менее 1 бита на компонент и не менее одной компоненты

Среди подходящих кодеков побеждает наименьшее положительное значение EncodedBytes, а решение сообщает OriginalBytes, SelectedBytes и SavedBytes

ReplaceOriginal равно True, только когда победитель — не picKeepOriginal, а SavedBytes достигает MinimumSavingBytes; иначе решение сбрасывается в picKeepOriginal с нулевой экономией байтов

Remarks

Example

Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
  ReEncode := Decision.Codec;

See Also

TPdf.OptimizeImages, BuildToUnicodeCMap, TPdf.ImageInfo