Tue, 6 Apr 2010 15:10:49 +0200 письмо от Nils de Reus <nils.de.r...@ivm.vu.nl>:
> When I am getting a binary stored image from a database or as output from > another process and I need to dynamically feed it into PIL, I usually resort > to StringIO. The charm there is that I can simply use Image.open() and leave > the hassle of figuring out the image header to PIL. > > import StringIO > import Image > > ... > > cursor = connection.cursor() > cursor.execute("SELECT file from table") > row = cursor.fetchone() > > img_stringio_in = StringIO.StringIO( row[0] ) > > img_full = Image.open( img_stringio_in ) > > # You did not specify how you wanted to crop, so I leave defining the box > parameter as an exercise to your imagination - but for the example I'll crop > to the top-left 100x100 area. > > box = ( 0 , 0 , 100 , 100 ) > > img_cropped = img_full.crop( box ) > > Now you have a cropped image, and if I understand well, you want to write it > back somehow into your database? Several different ways you could proceed > now.. you could either dump a raw string with the toString function, or > create another StringIO object and specify that as the file to save into > using save() or one of the other means of saving the image, and dump that > thing back into your database. Remember that if using the StringIO trick, you > need to seek() back to the start after saving into it, like this: > > img_stringio_out = StringIO.StringIO() > img_cropped.save( img_stringio_out, format="png" ) > img_stringio_out.seek( 0 ) > > Otherwise, a later img_stringio_out.read() would return nothing, since the > internal cursor would already be at EOF after the save() > > Kind regards, > Nils > > > > > > I want to use PIL library for crop image on the fly. In my python script: > > > > cursor = connection.cursor() > > cursor.execute("SELECT file from table"); > > row = cursor.fetchone(); > > filetype = imghdr.what(0,row[0]); > > mimetype = 'image/' + filetype; > > response = HttpResponse(row[0],mimetype = mimetype ); > > > > How to correct use PIL library for read image to Image object and return > > image after crop ? > > > > _______________________________________________ > > Image-SIG maillist - Image-SIG@python.org > > http://mail.python.org/mailman/listinfo/image-sig > Thanks _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig