THotPDF.OptimizeLoadedImagesByVisualCost Method
Виконує обмежений пошук якості для придатних завантажених зображень JPEG і JPEG 2000 і приймає найдешевший кандидат, який задовольняє обидва ліміти — якості та економії
Оголошення
function OptimizeLoadedImagesByVisualCost(
const Options: THPDFImageRecompressionCostOptions;
out AInfo: THPDFImageRecompressionCostInfo): Integer;
Модель вартості
Кожен закодований кандидат декодується та порівнюється з декодованим джерелом через вибіркові залишки люми і хроми за нормованою шкалою сприйнятої помилки від нуля до 100
Кандидати вищі за MaximumPerceptualError або нижчі за MinimumSavingsBytes відхиляються до оцінювання
score = VisualErrorWeight * sqr(error / MaximumPerceptualError)
+ ByteCostWeight * (candidateBytes / sourceBytes)
Перемагає найнижчий бал, потім менший закодований розмір і далі вища якість за однакових балів, тому повторні запуски дають той самий результат
THPDFImageRecompressionCostOptions
MinimumQuality, MaximumQuality і QualityStep визначають обмежені спроби якості, причому максимальна якість завжди включена, навіть коли крок не ділить діапазон
SampleStride керує детермінованим проріджуванням пікселів від 1 до 64, а два невід'ємні вагові коефіцієнти дозволяють викликачам віддавати перевагу візуальній точності чи компактному виводу
THPDFImageRecompressionCostOptions.Default шукає якість від 30 до 90 кроками по 10, обмежує сприйняту помилку до 3, вимагає щонайменше один збережений байт, бере кожен четвертий піксель у кожному вимірі та зважує візуальну помилку й вартість байтів однаково
THPDFImageRecompressionCostInfo
Результат повідомляє кількість сканованих і придатних зображень, перезаписи JPEG і JPEG 2000, спроби кодування, відхилення за візуальною помилкою та вартістю байтів, підсумки вибраної якості, максимальну прийняту сприйняту помилку, підсумки байтів і статус DeterministicSelection
Безпека
Зображення масок, маски за колірним ключем, плашкові кольори, зображення Lab і джерела ICCBased без RGB залишаються незмінними, тоді як перетворювані калібровані RGB-джерела зберігають явний відкалібрований вихідний колірний простір
Скасування перевіряється перед кожним зображенням і спробою кодування, і жодне джерело потоку не замінюється, доки не вибрано повністю прийнятного кандидата