python pil如何获得或者设置图片的物理尺寸?

fnzh0003 2011-08-10 03:41:01
1 >>> import Image
2 >>> im = Image.open("j.jpg")
3 >>> print im.format, im.size, im.mode
4 JPEG (440, 330) RGB

这个size是像素点的概念,不是真实的物理尺寸
1.发现python的这个pil库不能获得图片的dpi(分辨率,每平方英寸的像素点)这个数值?
2.如果这个图片原始的dpi是72,那么它的物理尺寸就是,440/72,330/72,如果我要将它设定为规定的物理尺寸,设置dpi这个数值就可以了(gimp软件中可以这么做)
请问,python的pil库是怎么处理这个问题的呢?
...全文
783 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fnzh0003 2011-08-12
  • 打赏
  • 举报
回复
angel_su是对的,
1.可以支持png格式
2.要用.info
angel_su 2011-08-12
  • 打赏
  • 举报
回复
直接查一下info属性试试...
import Image

im = Image.open('1.png')
print im.format, im.size, im.mode, im.info

输出:
PNG (414, 293) RGBA {'dpi': (96, 96)}
panghuhu250 2011-08-11
  • 打赏
  • 举报
回复
你的原贴中例子是jpg文件。png文件不支持exif,所以i没有_getexif方法。

如果你想处理的文件有多种格式的话,可以试试专门的工具,例如exiv2及pyexiv2。
fnzh0003 2011-08-11
  • 打赏
  • 举报
回复
>>> from PIL import Image
>>> from PIL.ExifTags import TAGS
>>> ret = {}
>>> i = Image.open('/home/test.png')
>>> info = i._getexif()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 512, in __getattr__
raise AttributeError(name)
AttributeError: _getexif
如何处理这个问题?/
panghuhu250 2011-08-10
  • 打赏
  • 举报
回复
dpi信息应该保存在文件的EXIF中,这儿(http://www.blog.pythonlibrary.org/2010/03/28/getting-photo-metadata-exif-using-python/)有检查这些信息的例子。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧