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 <wich...@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-...@python.org > http://mail.python.org/mailman/listinfo/image-sig > > _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig