I couldn't get it to work without cStringIO, here's some info...
```
Traceback (most recent call last):
    im = Image.open(wms_image) 
  File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1964, in open
    fp.seek(0)
AttributeError: addinfourl instance has no attribute 'seek'
```
```
>>> wms_image
<addinfourl at 180067500 whose fp = <socket._fileobject object at 0xab6b56c>>
```
```
>>> dir(wms_image)
['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'code', 'fileno', 'fp', 'getcode', 'geturl', 'headers', 'info', 'msg', 'next', 'read', 'readline', 'readlines', 'url']
```
```
>>> img.read()
'\x00\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\x00\x00\x03\x00PLTE\xbf\xbf\xbf\xff\xff\xe1\xff\xff\xbe\xff\xd3\x7f\xe6\x98\x00\xe6\x98\x00\xd1\xffs\x98\xe6\x00Ls\x00444\ [truncated]
```