PIL and vectorbased graphics
Question: I run into several problems when I try to open EPS- or SVG-Images with PIL.

Opening EPS

    
    
    from PIL import Image
    test = Image.open('test.eps')
    

ends in:

    
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Python27\Lib\site-packages\PIL\Image.py", line 1965, in open
        return factory(fp, filename)
      File "C:\Python27\Lib\site-packages\PIL\ImageFile.py", line 91, in __init__
        self._open()
      File "C:\Python27\Lib\site-packages\PIL\EpsImagePlugin.py", line 206, in _open
        raise IOError, "bad EPS header"
      IOError: bad EPS header
    

Also opening SVG ends in `IOError: cannot identify image file`.

The problem is I have to support both formats in my application. Converting to
other formats is no alternative. I'm on Windows 7, Python 2.7.2 and PIL 1.1.7.

I uploaded both images: [EPS](http://bit.ly/VckNjH) and
[SVG](http://bit.ly/XcsIxA).


Answer: Thre are alternatives to PIL, but alternatives to PIL are not what you want -
There is no library I know of that would transparently open a vector based
drawing and treat it just as any other image ,short of opening a web browser
and grabbing its render.

For dealing with SVG, there is a recipe using Cairo - which also can handle
alot of other formats, if a bit more difficult to deal with than the PIL API -
I think cario can also handle EPS - so, you can probably develop your app with
pycairo - or pycairo + PIL in the worst case.

The recipe for rendering SVG's is in the answer to: [Convert SVG to PNG in
Python](http://stackoverflow.com/questions/6589358/convert-svg-to-png-in-
python/6599172#6599172)

(note that you don't have to "convert the file to PNG" - the recibe shos how
you render to a cairo surface, which can be displayed, saved to a file, and so
on)

