Peter Bengtsson wrote:
On 2/23/07, Tom Von Lahndorff <[EMAIL PROTECTED]> wrote:
Hi,

I have a folder called "images" and a form that to add images to that
folder. The form called an external method (../images/addImage) that
references a python script, the one I sent earlier, that creates 4
versions of the images in 4 sizes and places them in the "images"
folder. Also in the "images" folder I have a ZCatalog called
"ImageData". I'm trying to add a line to the python script to
automatically catalog any images that are added to the "images" folder.
I tried "ImageData.manage_catalogObject..." but I kept getting back:
NameError: global name 'ImageData' is not defined. Any advice? Thanks.

Perhaps you meant
context.ImageData.manage_catalogObject(...

This is the complete script:

def makeImages(self, imagefile, newkeywords, newcaption, newsource):

   import PIL.Image, ImageEnhance, ImageFilter
   import PIL
   from StringIO import StringIO
   import os.path
   import datetime
   import time

   # create the data in a new PIL Image.
   image=PIL.Image.open(imagefile)
   image=image.convert('RGB')
   image=image.filter(ImageFilter.SHARPEN)
   image=image.resize((640, 480), PIL.Image.ANTIALIAS)
   image2=image.resize((320, 240), PIL.Image.ANTIALIAS)
   image3=image.resize((160, 120), PIL.Image.ANTIALIAS)
   image4=image.resize((80, 60), PIL.Image.ANTIALIAS)

   # get the data in memory.
   newimage_file=StringIO()
   image.save(newimage_file, "JPEG")
   newimage_file.seek(0)
   newimage_file2=StringIO()
   image2.save(newimage_file2, "JPEG")
   newimage_file2.seek(0)
   newimage_file3=StringIO()
   image3.save(newimage_file3, "JPEG")
   newimage_file3.seek(0)
   newimage_file4=StringIO()
   image4.save(newimage_file4, "JPEG")
   newimage_file4.seek(0)

   # create an id for the image
   now = datetime.datetime.now()
   newimageid=now.strftime('%Y%m%d%H%M%S')
   newimage_id=newimageid + '-640.jpg'
   newimage_id2=newimageid + '-320.jpg'
   newimage_id3=newimageid + '-160.jpg'
   newimage_id4=newimageid + '-80.jpg'

   # if there's an old image, delete it
   if newimage_id in self.objectIds():
       self.manage_delObjects([newimage_id])
   if newimage_id2 in self.objectIds():
       self.manage_delObjects([newimage_id2])
   if newimage_id3 in self.objectIds():
       self.manage_delObjects([newimage_id3])
   if newimage_id4 in self.objectIds():
       self.manage_delObjects([newimage_id4])

   # create the Zope image object for the new image
self.manage_addProduct['OFSP'].manage_addImage(newimage_id, newimage_file, '') self.manage_addProduct['OFSP'].manage_addImage(newimage_id2, newimage_file2, '') self.manage_addProduct['OFSP'].manage_addImage(newimage_id3, newimage_file3, '') self.manage_addProduct['OFSP'].manage_addImage(newimage_id4, newimage_file4, '')

   # now find the new zope object so we can modify
   # its properties.
   newimage_image=getattr(self, newimage_id)
   newimage_image.manage_addProperty('keywords', '', 'string')
   newimage_image.manage_addProperty('caption', '', 'string')
   newimage_image.manage_addProperty('imageid', '', 'string')
newimage_image.manage_changeProperties(keywords=newkeywords, caption=newcaption, imageid=newimageid, source=newsource)
   context.ImageData.manage_catalogObject(newimage_image, uid)
   newimage_image2=getattr(self, newimage_id2)
   newimage_image2.manage_addProperty('imagefile2', '', 'string')
   newimage_image3=getattr(self, newimage_id3)
   newimage_image3.manage_addProperty('imagefile3', '', 'string')
   newimage_image4=getattr(self, newimage_id4)
   newimage_image4.manage_addProperty('imagefile4', '', 'string')


Tom
_______________________________________________
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 )



_______________________________________________
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 )

Reply via email to