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

Optimización de recursos e imágenes