Python 打印图像时,什么决定图像在页面上的显示大小?

Python 打印图像时,什么决定图像在页面上的显示大小?,python,python-imaging-library,dpi,Python,Python Imaging Library,Dpi,我想使用Python的图像库创建一个PNG文件。 我希望在打印此图像时,在不进行任何缩放的情况下,它始终以已知且一致的“大小”打印在打印页面上 分辨率是否在图像中编码 如果是,我如何指定它 即使是这样,当它进入打印机时,这是否有任何关联 打印机的打印分辨率各不相同。例如,如果选择200 DPI的打印分辨率(或在打印机驱动程序中设置为默认分辨率),则200像素图像的大小应为1英寸。从PIL 1.1.5开始,有一种方法可以获得DPI: im = ... # get image into PIL im

我想使用Python的图像库创建一个PNG文件。
我希望在打印此图像时,在不进行任何缩放的情况下,它始终以已知且一致的“大小”打印在打印页面上

分辨率是否在图像中编码

如果是,我如何指定它


即使是这样,当它进入打印机时,这是否有任何关联

打印机的打印分辨率各不相同。例如,如果选择200 DPI的打印分辨率(或在打印机驱动程序中设置为默认分辨率),则200像素图像的大小应为1英寸。

从PIL 1.1.5开始,有一种方法可以获得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

这在很大程度上取决于您用于打印的软件。如果将图像放置在Word文档中,它将根据DPI进行缩放,直至页面宽度。如果要将其放在网页上,DPI根本不重要。

图像打印大小和分辨率都与打印特定比例和质量的图像相关。请记住,如果该图像随后包含在桌面发布工作区(Word、InDesign)甚至网页中,则该图像将受制于父文档中的任何指定分辨率——对于桌面发布程序,这不一定会改变图像的相对比例,但会改变图像质量


是的,所有图像都有分辨率属性,这回答了你一半的问题-我不懂Python…

我找到了一种非常简单的方法将dpi信息输入png:

保存('myfile.png',dpi=[600600])


不幸的是,我没有在任何地方找到这篇文档,不得不深入研究PIL源代码。

一些PNG没有DPI属性-您必须将其设置为(72,72)的“默认值”。这只适用于加载的图像。如果您正在制作一个新的(Image.new()),它没有dpi属性,或者实际上没有info中的任何属性,设置它们将被忽略。它是每英寸点数,您需要多个点数才能获得适当的(颜色)深度。