python不下载获取远程图片的宽度和高度及文件大小的方法

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

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.sharejs.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方法打开这个文件,就能进行图片的操作了。