DownsampleImages

Gestión de documentos, Imágenes

Descripción

Reduce la resolución de los XObjects de imagen incrustados cuya resolución efectiva supera MaxDPI. Cada imagen candidata se descodifica, se remuestrea conservando su proporción de aspecto y se recodifica como DCTDecode (JPEG) cuando Quality es mayor que 0 o como FlateDecode sin pérdida (PNG) cuando Quality es 0; el flujo de imagen y las entradas /Filter, /Width y /Height se reescriben in situ

Sintaxis

Delphi

Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;

Parámetros

MaxDPIUmbral de resolución en DPI; se remuestrean las imágenes cuya resolución efectiva estimada supera este valor. Los valores por debajo de 24 anulan la llamada
QualityCalidad de compresión JPEG entre 1 y 100 usada para la recodificación; pase 0 para recodificar sin pérdida como PNG
Filter0 selecciona el filtro de caja, que promedia bloques de píxeles de origen; cualquier otro valor selecciona el remuestreo bilineal

Valores devueltos

El número de XObjects de imagen reescritos, o 0 cuando MaxDPI está por debajo de 24 o ninguna imagen superó el umbral

Comentarios

La resolución efectiva se estima a partir de la anchura en píxeles declarada de la imagen contra una página de anchura Carta, de modo que la pasada es conservadora y las imágenes de calidad de impresión se dejan intactas ante la duda

Las imágenes menores de 8 x 8 píxeles declarados, las imágenes que fallan al descodificarse y las imágenes cuyo tamaño remuestreado no sería menor que el original se omiten sin hacer fallar la llamada

Ejemplo

PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');