A cropped image does not return a pixel access object when load()ed. This seems to be a simple oversight.
>>> im = Image.new('L',(50,50)) >>> im.load() <PixelAccess object at 0xb7d900f0> >>> im2 = im.crop((0, 0, 20, 20)) >>> im2.load() None There is an easy workaround: >>> im2.im.pixel_access() <PixelAccess object at 0xb7d900f0> and the patch below cures the problem. douglas --------------------------------------------- --- Image-old.py 2007-09-24 13:19:30.000000000 +1200 +++ Image-new.py 2007-09-24 13:19:17.000000000 +1200 @@ -1666,6 +1666,8 @@ if self.__crop: self.im = self.im.crop(self.__crop) self.__crop = None + if self.im: + return self.im.pixel_access(self.readonly) # FIXME: future versions should optimize crop/paste # sequences! _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig