DownsampleImages
Administración de documentos, Manejo de imágenes
Descripción
Reduce la resolución de los XObjects de imagen incrustados cuya resolución efectiva supera MaxDPI. Cada imagen candidata se decodifica, se remuestrea conservando su proporción y se recodifica como DCTDecode (JPEG) cuando Quality es mayor que 0, o como FlateDecode (PNG) sin pérdida cuando Quality es 0; el flujo de imagen y las entradas /Filter, /Width y /Height se reescriben en el sitio
Sintaxis
Delphi
Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;Parámetros
| MaxDPI | Umbral de resolución en DPI; las imágenes cuya resolución efectiva estimada supera este valor se remuestrean. Los valores por debajo de 24 abortan la llamada |
|---|---|
| Quality | Calidad de compresión JPEG entre 1 y 100 usada para la recodificación; pase 0 para recodificar sin pérdida como PNG |
| Filter | 0 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 del ancho declarado en píxeles de la imagen frente a una página de ancho 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 que fallan al decodificar y las cuyo tamaño remuestreado no resultarí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');