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://cdn.01happy.com/wp-content/uploads/2012/09/bg.png'
file = urllib2.urlopen(url)
tmpIm = cStringIO.StringIO(file.read())
im = Image.open(tmpIm)
print im.format, im.size, im.mode

主要是使用cStringIO库的方法,将内容存放到内存,而后用Image.open方法打开这个文件,就能进行图片的操作了。