2009-01-23 10 views
4

Utilisation de la bibliothèque d'imagerie Python Je souhaite créer un fichier PNG.
Je voudrais que, lors de l'impression de cette image, sans aucune mise à l'échelle, il imprime toujours à une «taille» connue et cohérente sur la page imprimée.Lors de l'impression d'une image, qu'est-ce qui détermine sa taille sur une page?

La résolution est-elle codée dans l'image?

Si oui, comment le spécifier?

Et même si c'est le cas, est-ce que cela a quelque chose à voir avec l'imprimante?

Répondre

6

Au PIL 1.1.5, il est un moyen d'obtenir le DPI:

im = ... # get image into PIL image instance 
dpi = im.info["dpi"] # retrive the DPI 
print dpi # (x-res, y-res) 
im.info["dpi"] = new dpi # (x-res, y-res) 
im.save("PNG") # uses the new DPI 
+0

sympa! Je vais l'essayer. – carrier

+0

Certains fichiers PNG n'ont pas de propriété DPI - vous devez le définir sur la valeur par défaut de (72, 72). – kylebrooks

+0

Cela ne fonctionne que pour les images chargées. Si vous en créez un nouveau (Image.new()), il n'a pas d'attribut dpi, ni même d'attributs dans info, et leur définition est ignorée. – Elliot

1

Les imprimantes ont différentes résolutions dans lesquelles elles impriment. Si vous sélectionnez une résolution d'impression de 200 DPI par exemple (ou si elle est définie par défaut dans le pilote d'imprimante), une image de 200 pixels doit avoir une taille d'un pouce.

+0

C'est DOTS par pouce, vous avez besoin de plusieurs points pour obtenir la bonne profondeur (couleur). – MSalters

0

Beaucoup va dépendre du logiciel que vous utilisez pour imprimer. Si vous placez l'image dans un document Word, elle évoluera en fonction du DPI, jusqu'à la largeur de votre page. Si vous le mettez sur une page Web, le DPI n'aura aucune importance.

1

La taille et la résolution de l'image sont toutes deux pertinentes pour imprimer une image d'une échelle et d'une qualité spécifiques. Gardez à l'esprit que si l'image est ensuite incluse dans un espace de travail de publication assistée par ordinateur (Word, InDesign) ou même une page Web, l'image est alors soumise à une résolution spécifiée dans le document parent. de l'image dans le cas des programmes de publication assistée par ordinateur mais modifiera la qualité de l'image.

Et oui, toutes les images ont une propriété de résolution, qui répond à la moitié de votre question - je ne sais pas ... Python

3

J'ai trouvé un moyen très simple d'obtenir des informations dans le dpi .png:

im.save ('myfile.png', dpi = [600,600])

Malheureusement, je n'ai trouvé cela documenté nulle part et j'ai dû creuser dans le code source PIL.