python不下载获取远程图片的宽度和高度及文件大小的方法
python中处理图片可以使用PIL库,PIL全称Python Imaging Library,就是python图形处理库的意思。在PIL中,可以使用Image.open来打开一个图片文件,但是笔者试了下,不能打开url地址的图片。如果要先把图片下载下来,存储到磁盘上,才能进行操作,那也太麻烦了。有没什么办法可以直接打开url地址的图片呢?
笔者提供一个方法:下载图片还是必须的,只是不存储到磁盘上,而是存储到内存里,这样就不会在磁盘上产生一堆的临时图片了。代码如下:
#!/usr/bin/env python #encoding=utf-8 import cStringIO, urllib2, Image url = 'http://www.75271.com/images/logo.png' file = urllib2.urlopen(url) tmpIm = cStringIO.StringIO(file.read()) im = Image.open(tmpIm) print im.format, im.size, im.mode
主要是使用cStringIO库的方法,将内容存放到内存,而后用Image.open方法打开这个文件,就能进行图片的操作了。