THotPDF.OptimizeLoadedImagesByVisualCost Method
Ejecuta una búsqueda de calidad acotada para las imágenes JPEG y JPEG 2000 cargadas elegibles y adopta el candidato de menor coste que satisface tanto los límites de calidad como los de ahorro
Declaración
function OptimizeLoadedImagesByVisualCost(
const Options: THPDFImageRecompressionCostOptions;
out AInfo: THPDFImageRecompressionCostInfo): Integer;
Modelo de coste
Cada candidato codificado se decodifica y se compara con el origen decodificado mediante residuos de luma y croma muestreados en una escala normalizada de error perceptivo de cero a 100
Los candidatos por encima de MaximumPerceptualError o por debajo de MinimumSavingsBytes se rechazan antes de puntuar
score = VisualErrorWeight * sqr(error / MaximumPerceptualError)
+ ByteCostWeight * (candidateBytes / sourceBytes)
Gana la puntuación más baja, seguida del tamaño codificado más pequeño y luego la mayor calidad cuando las puntuaciones empatan, de modo que las ejecuciones repetidas usan la misma salida
THPDFImageRecompressionCostOptions
MinimumQuality, MaximumQuality y QualityStep definen las pruebas de calidad acotadas, y la calidad máxima siempre se incluye incluso cuando el paso no divide el rango
SampleStride controla el submuestreo de píxeles determinista de 1 a 64, mientras que los dos pesos no negativos permiten a los llamadores favorecer la fidelidad visual o la salida compacta
THPDFImageRecompressionCostOptions.Default busca calidades de 30 a 90 en pasos de 10, limita el error perceptivo a 3, requiere un byte ahorrado, muestrea cada cuarto píxel en cada dimensión y pondera el error visual y el coste de bytes por igual
THPDFImageRecompressionCostInfo
El resultado informa de los recuentos de imágenes escaneadas y elegibles, las reescrituras JPEG y JPEG 2000, las pruebas de codificación, los rechazos por coste visual y de bytes, los totales de calidad seleccionada, el error perceptivo máximo aceptado, los totales de bytes y el estado de DeterministicSelection
Seguridad
Las máscaras de imagen, las máscaras de clave de color, las tintas planas, las imágenes Lab y los orígenes ICCBased que no son RGB permanecen sin cambios, mientras que los orígenes RGB calibrados convertibles conservan un espacio de color de salida calibrado explícito
La cancelación se comprueba antes de cada imagen y prueba de codificación, y ningún flujo de origen se reemplaza a menos que se haya seleccionado un candidato aceptado completo