Comment incorporer un tracé d'image avec des dimensions à l'échelle dans un pdf sans effets de lissage?

2

J'ai besoin de produire une représentation graphique des données au format pdf. Les données contiennent un petit nombre de pixels (environ 100 x 100), de sorte que chaque pixel est visible (et non une image lisse). J'ai essayé d'exporter un pdf avec plusieurs programmes informatiques scientifiques différents, mais lorsque je visualise le pdf dans OS X Preview ou le plugin pdf.js de Firefox, les données semblent mauvaises. Chaque pixel de données semble avoir été divisé en environ cinq pixels le long d'une dimension et trois le long de l'autre (le rapport de format n'est pas de 1: 1 dans la figure) et ces sous-pixels ont des couleurs légèrement différentes. Les données sont donc floues. . J'ai essayé d'ouvrir le fichier pdf dans Inkscape et tout y passe. D'après Inkscape, j'ai déterminé que les données étaient incorporées au format png 100 x 100 pixels, ce qui est bien dans Aperçu lorsque je l'extrais du fichier PDF et que je l'affiche lui-même.

Alors, quelle est la meilleure option pour obtenir un pdf avec un tracé de données précis? Pour le moment, je vais créer un fichier png suréchantillonné et l'intégrer au format PDF. Je n'aime pas trop cette solution car elle rend la taille du fichier de la figure inutilement volumineuse et signifie tout de même que l'image est floue lorsque vous effectuez un zoom avant. Devrait-il être possible d'obtenir du pdf pour restituer une image étirée sans lissage? Est-ce que mes programmes de calcul scientifique (Igor Pro et MATLAB) ne formatent pas le pdf correctement ou est-ce que Preview et Firefox ne le rendent pas correctement en le lissant?

ws_e_c421
la source

Réponses:

1

D'accord, j'ai enfin trouvé la réponse à cette question dans quelques articles de la section TeX de stackexchange: Mon image parfaite en pixels devient floue lors de la compilation dans LaTeX et PNG inclus apparaît flou dans PDF .

Résumé de ces publications: de nombreux lecteurs PDF ont un paramètre facultatif pour lisser la sortie PDF ("Lisser le texte et les dessins au trait" dans OS X Preview, "Le texte anti-alias et les dessins au trait" dans Skim; certains programmes tels que l'extension pdf.js de Firefox ont ce paramètre est activé sans moyen évident de le désactiver; d'autres, comme la visionneuse pdf de Google Chrome, ne semblent pas disposer de ce paramètre; notez que les noms des paramètres Aperçu et Écran sont trompeurs, car les images raster, et pas uniquement les lignes, sont lissées si ce paramètre est activée). Pour les programmes qui disposent de ce paramètre, la désactivation donne à l'image intégrée une belle apparence, mais d'autres aspects du pdf (et d'autres fichiers PDF) seront moins beaux (le texte sera pixelisé, etc.). Le format PDF ne contient pas d’option interne permettant au programme de visualisation de ne pas lier un élément anti-alias (peut-être un jour ...). Il semble donc que pour le moment, la solution que je viens de décrire est en fait la méthode généralement utilisée pour incorporer des images pixélisées dans des fichiers PDF: suréchantillonnez l'image à la résolution requise *.

L'autre option consiste à convertir l'image en une image vectorielle de rectangles colorés. J'ai expérimenté cette méthode avec Inkscape (utilisez l'option de trace de la méthode de clonage en mosaïque pour cloner un rectangle de pixel unique sur l'image; voir cette page de documentation pour certains détails), mais comme cette méthode nécessite de spécifier toutes les coordonnées de l’objet rectangle de chaque pixel, l’espace disque est bien moins efficace que l’incorporation d’une image raster.

* Une façon de sur-échantillonner une image est d'utiliser ImageMagick avec l'exemple de drapeau définir les dimensions sur des multiples supérieurs aux dimensions de l'image de base. Notez que vous avez besoin d'un \! après les nouvelles dimensions, si vous souhaitez modifier le rapport de format (par exemple, si vous étendez l’image dans le fichier PDF, vous voudrez peut-être donner à chaque pixel original une largeur de dix pixels, mais de seulement trois pixels de haut).

ws_e_c421
la source