PDFium Component Docs

OptimizeImages Método

Componente: TPdf  ·  Unidad: PDFium
Reduce el muestreo de los objetos de imagen de página cuyo DPI efectivo de colocación supera un objetivo seleccionado por quien llama, dejando el documento optimizado listo para SaveAs

Syntax

function OptimizeImages(const Options: TPdfImageOptimizeOptions; out Report: TPdfImageOptimizeReport): Boolean;

Description

A diferencia de las reescrituras SaveAs*, OptimizeImages edita el documento actual en memoria a través de la API nativa de objetos de imagen de PDFium, siguiendo el modelo de edición de AddImage / GenerateContent

Se recorre cada página y el DPI efectivo de colocación de cada objeto de imagen se lee de FPDFImageObj_GetImageMetadata; cuando max(horizontal, vertical) DPI / TargetDpi alcanza MinDpiRatio, la imagen se remuestrea hacia abajo

El remuestreo mide el detalle de luminancia local, selecciona un filtro box, bilineal, bicúbico, Lanczos o bilevel según la escala, la clase de contenido y la calidad preferida, y escribe el mapa de bits más pequeño del mismo formato de vuelta con FPDFImageObj_SetBitmap

Las muestras BGRA se acumulan en el espacio de alfa premultiplicado y solo se desmultiplican en el píxel de destino, lo que evita franjas de color transparentes alrededor de los bordes remuestreados

Cada página tocada se confirma con FPDFPage_GenerateContent; quien llama entonces guarda el documento optimizado con la llamada habitual a SaveAs

Policies and limits

Example

Options:= TPdfImageOptimizeOptions.Default;
Options.TargetDpi:= 150;
Options.ResampleFilter:= pirfAdaptive;
Options.MaxWorkingBytes:= 64 * 1024 * 1024;
Pdf.OptimizeImages(Options, Report);
WriteLn('downsampled ', Report.OptimizedCount, ' images');
Pdf.SaveAs('optimized.pdf');

See Also

SaveAs, AddImage, SaveAsDeduplicated