cyberco wrote: > Thanks, > > I've tried the StringIO option as follows: > > ================================= > img = Image.open('/some/path/img.jpg') > img.thumbnail((640,480)) > file = StringIO, StringIO() > img.save(file, 'JPEG') > > ================================= > > But it gives me: > > ================================= > > exceptions.TypeError Traceback (most > recent call last) > > C:\Python24\lib\site-packages\PIL\Image.py in save(self, fp, format, > **params) > 1303 > 1304 try: > -> 1305 save_handler(self, fp, filename) > 1306 finally: > 1307 # do what we can to clean up > > C:\Python24\lib\site-packages\PIL\JpegImagePlugin.py in _save(im, fp, > filename) > 407 ) > 408 > --> 409 ImageFile._save(im, fp, [("jpeg", (0,0)+im.size, 0, > rawmode)]) > 410 > 411 def _save_cjpeg(im, fp, filename): > > C:\Python24\lib\site-packages\PIL\ImageFile.py in _save(im, fp, tile) > 464 bufsize = max(MAXBLOCK, im.size[0] * 4) # see RawEncode.c > 465 try: > --> 466 fh = fp.fileno() > 467 fp.flush() > 468 except AttributeError: > > TypeError: descriptor 'fileno' of 'file' object needs an argument > ================================= > > It looks similar to the code in Sparklines except for the fact that > the latter creates an Image from scratch. > > 2B > >> Saving the image, in a >> format your client understands, to a file like object like >> StringIO.StringIO is an easy path to take. >> >> Sparklines shows this in action: >> >> http://bitworking.org/projects/sparklines/ >> >> max > > If it hasn't already bitten you it will: It is a BAD idea to use 'file' as a variable name. If you do, you mask the built-in file function. That is why most people use fp or something else.
-Larry -- http://mail.python.org/mailman/listinfo/python-list