[Zope] Using PIL in zope product
Garito
garito at sistes.net
Tue Dec 28 02:55:30 EST 2004
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 at 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 )
>
>
More information about the Zope
mailing list