[Image-SIG] OverflowError on image save

Fredrik Lundh fredrik at pythonware.com
Thu Mar 5 18:41:20 CET 2009


Can you print the following attributes for a broken file, before calling load:

    pil_data.mode
    pil_data.size
    pil_data.tile

</F>

2009/3/3 Wichert Akkerman <wichert at simplon.biz>:
> I have a small routine which tries to verify if an uploaded file is a valid
> image. It works like this:
>
>         image_data=StringIO(data)
>         try:
>             pil_data=PIL.Image.open(image_data)
>         except IOError: # PIL abuses IOError to report parsing errors
>             raise Invalid(self.message("bad_image", state),
>                     value, state)
>
>         pil_data.load()
>         (width,height)=pil_data.size
>
> For some images I get an OverflowError on the load() call:
>
> Module PIL.ImageFile:155 in load
>>>  self.load_prepare()
> Module PIL.ImageFile:223 in load_prepare
>>>  self.im = Image.core.new(self.mode, self.size)
> OverflowError: long int too large to convert to int
>
> I can not find any information as to what the problem might be. It seems to
> only occur for bmp files; jpeg and png appear to work correctly.
>
> This is using PIL 1.1.6 and Python 2.5 on a Linux system.
>
> Wichert.
> <<                      self.map = None
>
>                self.load_prepare()
>
>                # look for read/seek overrides
> <<          if not self.im or\
>                   self.im.mode != self.mode or self.im.size != self.size:
>                    self.im = Image.core.new(self.mode, self.size)
>                # create palette (optional)
>                if self.mode == "P":
> _______________________________________________
> Image-SIG maillist  -  Image-SIG at python.org
> http://mail.python.org/mailman/listinfo/image-sig
>
>


More information about the Image-SIG mailing list