Did you know Photo and Photo folder product? John Schinnerer wrote:
Hello,
I am developing an art-gallery type of product, with images of artworks stored as zope Image objects within a folderish product instance.
When a new gallery item instance is created, or when the Image object in an existing instance is changed, I want to auto-generate a thumbnail of the image (using PIL) and store it also as a zope Image object.
In manage_addAction for example I have this: ... imgfile = REQUEST.image_file if imgfile and imgfile.filename != '': newObjId.manage_addImage('art_piece', imgfile, newObjId.title) newObjId.manage_addImage('art_piece_thumb', makeThumb(imgfile), newObjId.title) ...
and here is makeThumb (using PIL):
def makeThumb(imagefile): "create thumbnail image from full-size art_piece image" img = Image.open(imagefile) thumb = img.thumbnail((111,111), Image.ANTIALIAS) return thumb
I get a zope error triggered by the line
img = Image.open(imagefile)
like this:
Error Type: AttributeError Error Value: FileUpload instance has no attribute '__getitem__' (traceback further below if helpful)
So apparently there is some problem with trying to use the image file passed in the request with the PIL functions...it's not a "real" file or at least doesn't have some attributes that PIL is expecting to find, or something like that.
Is there a simple way around this the way I'm trying to do it?
If not, how else could I try to get the same result (a zope Image object thumbnail image created from the 'full size' image being uploaded in the request)?
thanks, John S. ---------------
Traceback (innermost last): File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 150, in publish_module File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 114, in publish File /usr/lib/zope/lib/python/Zope/__init__.py, line 159, in zpublisher_exception_hook (Object: bg) File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 98, in publish File /usr/lib/zope/lib/python/ZPublisher/mapply.py, line 88, in mapply (Object: add_GTIGalleryItem) File /usr/lib/zope/lib/python/ZPublisher/Publish.py, line 39, in call_object (Object: add_GTIGalleryItem) File /usr/lib/zope/lib/python/Shared/DC/Scripts/Bindings.py, line 252, in __call__ (Object: add_GTIGalleryItem) File /usr/lib/zope/lib/python/Shared/DC/Scripts/Bindings.py, line 283, in _bindAndExec (Object: add_GTIGalleryItem) File /usr/lib/zope/lib/python/Products/PythonScripts/PythonScript.py, line 302, in _exec (Object: add_GTIGalleryItem) (Info: ({'script': <PythonScript instance at 892f4c0>, 'context': <Folder instance at 8988608>, 'container': <Folder instance at 8b8d860>, 'traverse_subpath': []}, (), {}, None)) File Script (Python), line 11, in add_GTIGalleryItem File /usr/lib/zope/lib/python/Products/GTIGalleryItem/GTIGalleryItem.py, line 98, in manage_addAction File /usr/lib/zope/lib/python/Products/GTIGalleryItem/GTIGalleryItem.py, line 71, in makeThumb File /usr/lib/python2.1/site-packages/PIL/Image.py, line 984, in open File /usr/lib/zope/lib/python/App/ImageFile.py, line 35, in __init__ File /usr/lib/python2.1/posixpath.py, line 48, in join AttributeError: (see above)
__________________________________ Do you Yahoo!? Dress up your holiday email, Hollywood style. Learn more. http://celebrity.mail.yahoo.com _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )