¿Cómo incrustar un gráfico de imagen con dimensiones escaladas en un pdf sin efectos de suavizado?

2

Necesito producir una imagen gráfica de datos como un pdf. Hay un pequeño número de píxeles en los datos (aproximadamente 100 x 100), por lo que cada píxel es discernible (no es una imagen uniforme). He intentado exportar un pdf con un par de programas de computación científica diferentes, pero cuando veo el pdf en OS X Preview o el plugin pdf.js de Firefox, los datos se ven mal. Cada píxel individual de datos parece haberse dividido en unos cinco píxeles en una dimensión y tres en la otra (la relación de aspecto no es 1: 1 en la figura) y estos subpíxeles tienen colores ligeramente diferentes, por lo que los datos se borran. . Intenté abrir el pdf en Inkscape y se ve bien allí. Desde Inkscape, determiné que los datos se están incrustando como un png de 100x100 píxeles, que se ve bien en Vista previa cuando los extraigo del pdf y los veo por su cuenta.

Entonces, ¿cuál es la mejor opción para obtener un pdf con una gráfica de datos nítida? Por ahora, voy a crear un png sobre muestreado de los datos y lo incrustaré en pdf. No me gusta mucho esta solución porque hace que el tamaño del archivo de la figura sea innecesariamente grande y aún significa que la imagen está borrosa cuando se acerca. ¿Debería ser posible obtener el pdf para renderizar una imagen estirada sin suavizar? ¿Mis programas de computación científica (Igor Pro y MATLAB) no están formateando correctamente el pdf, o bien Preview y Firefox no lo están procesando correctamente?

ws_e_c421
fuente

Respuestas:

1

Bien, finalmente encontré la respuesta a esta pregunta en un par de publicaciones en la sección TeX de stackexchange: Mi imagen de píxel perfecto se vuelve borrosa cuando se compila en LaTeX y PNG incluido aparece borroso en PDF .

Resumen de esas publicaciones: muchos visores de PDF tienen una configuración opcional para suavizar la salida de PDF ("Texto suave y arte lineal" en OS X Preview, "Texto anti-alias y arte lineal" en Skim; algunos programas como la extensión pdf.js de Firefox tienen esta configuración no tiene una forma obvia de desactivarla; otros, como el visor de pdf de Google Chrome, no parecen tener esta configuración; tenga en cuenta que los nombres de configuración Vista previa y Skim son confusos porque las imágenes de trama, no solo las líneas, se suavizan si esta configuración es habilitado). Para los programas que tienen esta configuración, deshabilitar la configuración hace que la imagen incrustada se vea bien, pero otros aspectos del pdf (y otros pdf) no se verán tan bien (el texto será pixelado, etc.). El formato PDF no tiene una opción interna para decirle al programa del espectador que no suavice un elemento anti-alias (quizás algún día ...), por lo que parece que por ahora la solución que describí anteriormente es en realidad el método que normalmente se usa para incrustación de imágenes pixeladas en archivos PDF: muestree la imagen a la resolución requerida *.

La otra opción es convertir la imagen en una imagen vectorial de rectángulos de colores. Experimenté con este método con Inkscape (use la opción de rastreo del método de clonación de mosaicos para clonar un rectángulo de un solo píxel sobre la imagen; vea esta página de documentación para algunos de los detalles), pero debido a que este método requiere especificar todas las coordenadas del objeto rectángulo de cada píxel, termina siendo mucho menos eficiente en cuanto a espacio de disco en comparación con la incrustación de una imagen ráster.

* Una forma de remuestrear una imagen es usar ImageMagick con la bandera de muestra estableciendo las dimensiones a múltiplos más altos de las dimensiones de la imagen base. Tenga en cuenta que necesita un \! después de las nuevas dimensiones, si desea cambiar la relación de aspecto (por ejemplo, si extiende la imagen en el pdf, es posible que desee que cada píxel original tenga diez píxeles de ancho pero solo tres píxeles de alto).

ws_e_c421
fuente