PDFDocument: No más Imágenes Borrosas

Entre las principales mejoras introducidas en el soporte de imágenes en PDFDocument con Xojo 2021r2, como por ejemplo el soporte de transparencia, soporte de canal alfa, o el modo en el que se codifican los datos en el stream PDF resultante (adiós DCTEncoding), se encuentra una que viene a corregir el aspecto de las imágenes que no se mostraban con toda la nitidez que cabría esperar cuando se añadían a las páginas del documento PDF. Ya no más.

A partir de Xojo 2021r3 comenzamos a manejar las imágenes añadidas a PDFDocument de una forma diferente, especialmente cuando estas se agregan a la página utilizando un tamaño de destino inferior al de la propia imagen original. Probablemente esta sea la acción más frecuenta cuando añadimos las imágenes utilizando unas líneas de código similares a las siguientes:

Var d As New PDFDocument
var g as Graphics = d.Graphics

g.DrawPicture myImage, 10, 10, 100, 100, 0, 0, myImage.Width, myImage.Height

o bien:

g.DrawPicture myImage, 10, 10, myImage.Width/3, myImage.Width/3, 0, 0, myImage.Width, myImage.Height

Donde "myImage" es una imagen que se ha añadido al proyecto de Xojo, cargada desde disco o bien obtenida a partir de una consulta a una base de datos.

Aquí puedes apreciar la calidad que se venía obteniendo hasta ahora (arriba), y la nueva calidad que puedes esperar a partir de ahora (abajo):

De igual forma, el nuevo modo en el que se crean los streams de datos correspondientes a las imágenes PDF, para proporcionar mayor nitidez, implica que se añadirán los datos correspondientes a la resolución completa original de la imagen al PDF resultante. En otras palabras, aumentará el tamaño del documento PDF.

Por ejemplo, comparemos este mismo documento creado con Xojo 2021r2.1 (arriba) y Xojo 2021r3 (abajo):

El PDF creado con Xojo 2021r2.1 tiene un tamaño de 521 KB, mientras que el creado con Xojo 2021r3 tiene un tamaño de 3,1 MB. Esto se debe a que simplemente el tamaño de las imágenes utilizadas, a su resolución completa, supone un total de 950 KB, a lo cual deben de sumarse los datos correspondientes al soporte de máscara y canal alfa en la nueva versión de Xojo.

El lado positivo del aumento del tamaño en el documento es que, gracias a que se incluyen las imágenes a su resolución completa, ahora estas continuarán mostrándose nítidas en el documento PDF incluso cuando se emplea un porcentaje de ampliación superior al 100% en la aplicación Visor de PDF, tal y como podemos ver aquí (Xojo 2021r2.1, arriba; Xojo 2021r3, abajo), donde la página se ha ampliado al 500% en Acrobat Reader:

Tamaño de Documento vs. Calidad de Imagen

Dependerá en gran medida de lo que quieras ofrecer a tus usuarios. Es decir, tomando como caso nuestro documento de ejemplo podemos observar los siguientes valores:

  • Resolución del documento PDF (ancho x alto): 612 x 792 píxeles.
  • Resolución de la imagen de la manzana (ancho x alto): 607 x 576 píxeles.

Como puedes ver, incluso simplemente la imagen de la manzana tiene prácticamente la misma resolución que la página completa del documento PDF, aunque finalmente se añada a esta utilizando un tamaño de 100 x 100 píxeles. Esto significa que la imagen mantendrá su nitidez incluso si decidimos utilizar un valor de ampliación del 800% en la aplicación Visor de PDF; si bien a un coste del incremento de tamaño en el documento PDF resultante.

Este es también el mismo caso para la imagen con los barriles de las manzanas (960 x 285 píxeles), y la imagen de césped añadida en la parte inferior de la página (1.200 x 800 píxeles); si bien estas se añaden al documento con una resolución de 140 x 350 píxeles, y prácticamente a su resolución total, respectivamente.

Por tanto, y teniendo lo anterior en cuenta, probablemente querrás que las imágenes originales añadidas a las páginas de tus documentos PDF tengan, como mucho, el doble de resolución en comparación con el que vayas a emplear finalmente para añadirlas a las páginas. Esto proporcionará una buena calidad y también mantendrá un tamaño razonable en el documento PDF final.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *