Re: Adding a comment to an image using PIL



Jeffrey Barish wrote:

I am trying to use PIL to add a comment to an image. I have never used PIL
before, but I discovered that it is possible to print an existing comment
with the following:

im = PIL.Image.open('filename.jpg')
print im.app['COM']

I figured that I could write a comment by reversing this procedure:

im.app['COM'] = 'New comment'
im.save('newfilename.jpg')

However, when I open newfilename.jpg, I find that key 'COM' does not
exist -- the comment is not being written. Presumably, I am doing
something wrong.

PIL's support for JPEG markers is mostly read-only. Adding comments
by decoding/encoding isn't a very good idea anyway; to do that right, you need to work on the JPEG data stream, not on a decoded image.

it would probably not be too hard to write a JPEG stream editor based
on PIL's JPEG stream parser, but for the time being, I recommend using IJG's "wrjpgcom" utility for things like this.

</F>

.