[Image-SIG] Problem using PIL with cx_freeze

Colin Brown Colin.Brown at metservice.com
Fri Nov 17 05:42:17 CET 2006


 

Hello

 

I am attempting to put together a package that uses python2.3 under the
corresponding version of cx_freeze on Windows 2K.

 

My test module is:

 

import cStringIO, StringIO

import Image

import WmfPlugin

 

def convert(wmfdata):

    im = Image.open(cStringIO.StringIO(wmfdata))

    x,y = im.size

    smallest = min(x,y)

    scale = int(2*1728.0/smallest + 0.99)

    im.size = x*scale, y*scale

    im.load()

    if x > y:

        im = im.rotate(90)

    out = StringIO.StringIO()

    im.save(out,'PNG')

    return out.getvalue()

 

if __name__ == '__main__':

    d1 = open('wind.wmf','rb').read()

    d2 = convert(d1)

    open('wind.png','wb').write(d2)

 

When run interactively from python23 it works really well but when
frozen I get the following error:

 

Traceback (most recent call last):

  File "C:\Src\1_cx_Freeze-3.0.3\initscripts\console.py", line 27, in ?

    exec code in m.__dict__

  File "wmf2png.py", line 30, in ?

 

  File "wmf2png.py", line 20, in convert

    If x > y:

  File "C:\Python23\lib\site-packages\PIL\Image.py", line 1295, in save

    Save_handler = SAVE[string.upper(format)] # unknown format

KeyError: 'PNG'

 

The traceback line numbers for some reason are not showing the correct
error

location in the module:  => im.save(out,'PNG')

 

I added debugging into Image.py to print out SAVE before the exception
and find:

{'WMF': <function _save at 0x0091DC70>}

 

Running the unfrozen module interactively SAVE has entries for TIFF,
PNG, GIF, WMF etc.

 

The environment is a new Win2K + SP4 with the latest python2.3 code
running under VMWare on an XP box.

 

I have tried various ways of attempting to register the PNG module
without success.

 

Any thoughts as to how to get around this problem would be much
appreciated.

 

Thanks

Colin Brown

PyNZ

 

Ps: 1.   I am using 2.3 as there appears to be no later version of the
WmfPlugin module.

2.	Although there are other WMF converters available, the PIL
module is one of the
	few that handles the in-house written WMF files I have to
convert :-)

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/image-sig/attachments/20061117/aecdb71a/attachment.html 


More information about the Image-SIG mailing list