Hi ,
I use this external Methode to generate thumbs from an image an write both in an mysql database. May this helps you
____________________________________________________________________________
____________ from PIL.Image import BICUBIC, BILINEAR, NEAREST from cStringIO import StringIO
import _mysql import MySQLdb import PIL
def write(filename, pid): db=MySQLdb.connect(db="shop",user="zope",passwd="") c=db.cursor() imgfile=open(filename,'rb') sql_reset_img1="update PRODUCT set PIMAGE=NULL where PID="+ pid sqlstr="update PRODUCT set PIMAGE='" + _mysql.escape_string(imgfile.read()) +"' where PID="+ pid # do reset... c.execute(sql_reset_img1) # do the "update" load... c.execute(sqlstr) imgfile.close() im = PIL.Image.open(filename) fmt = im.format if fmt == 'PNG': fmt = 'JPEG' size = (int('75'),int('75')) x, y = im.size if x > size[0]: y = y * size[0] / x; x = size[0] if y > size[1]: x = x * size[1] / y; y = size[1] size = x, y im.draft(None, size) im = im.resize(size) im.size = size im.save('/home/zope/tempimage/temp.jpg', fmt) tempfile=open('/home/zope/tempimage/temp.jpg','rb') sql_reset_img2="update PRODUCT set PTHUMB=NULL where PID="+ pid sqlstri="update PRODUCT set PTHUMB='" + _mysql.escape_string(tempfile.read()) +"' where PID="+ pid # do reset... c.execute(sql_reset_img2) # do the "update" load... c.execute(sqlstri) tempfile.close() return 'image was written to db successfull'
____________________________________________________________________________ Jens ----- Original Message ----- From: "Marcello Lupo" <lupo@atisworld.com> To: <zope@zope.org> Cc: <andy.smith@iname.com> Sent: Friday, October 27, 2000 2:38 PM Subject: [Zope] PIL/Zope Problem
Hi to all, i read all the documentation and made all things to let interact PIL and Zope and i cannot find the way to make it work. If i try to import PIL from pyton interpreter it works perfectly with:
******************************* Python 1.5.2 (#1, Jul 17 1999, 22:10:16) [GCC egcs-2.91.66 19990314/Linux (egcs- on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
import PIL
data=PIL.Image.open("/home/httpd/listanozze/docs/images/prove/ccc.jpg","r")
print data.format JPEG print data.info {'adobe_transform': 1, 'progression': 1, 'adobe': 100, 'jfif': 258} print data.size (450, 309)
as you can see it works. But when i try to access PIL.Image.open from an external method in Zope i get:
*******************************
Error Type: AttributeError Error Value: Image
Troubleshooting Suggestions
The URL may be incorrect. The parameters passed to this resource may be incorrect. A resource that this resource relies on may be encountering an error.
For more detailed information about the error, please refer to the HTML source for this page.
If the error persists please contact the site maintainer. Thank you for your patience.
Traceback (innermost last): File /home/httpd/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 214, in publish_module File /home/httpd/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 179, in publish File /home/httpd/Zope-2.1.6-src/lib/python/Zope/__init__.py, line 202, in zpublisher_exception_hook (Object: ElementWithAttributes) File /home/httpd/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 165, in publish File /home/httpd/Zope-2.1.6-src/lib/python/ZPublisher/mapply.py, line 160, in mapply (Object: pippo) File /home/httpd/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 102, in call_object (Object: pippo) File /home/httpd/Zope-2.1.6-src/lib/python/OFS/DTMLMethod.py, line 150, in __call__ (Object: pippo) File /home/httpd/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__ (Object: pippo) File /home/httpd/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_Util.py, line 335, in eval (Object: resize_image(foto)) (Info: foto) File <string>, line 0, in ? File
/home/httpd/Zope-2.1.6-src/lib/python/Products/ExternalMethod/ExternalMethod .py,
line 255, in __call__ (Object: resize_image) (Info: ((<ZPublisher.HTTPRequest.FileUpload instance at 8565c90>,), {}, None)) File /home/httpd/Zope-2.1.6-src/Extensions/image_op.py, line 7, in resize_image (Object: ElementWithAttributes) AttributeError: (see above)
*********************************
My external Method say: **************************** import PIL
def resize_image(self, foto):
if foto: data=PIL.Image.open(foto) data=data.resize((128, 128)) return data.size else: return "Nothing"
***************************************
Can anyone help me?? Thanks Bye, MArcello
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )