[Zope] PIL/Zope Problem

2000-10-27 Thread Marcello Lupo

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  -  [EMAIL PROTECTED]
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 )




Re: [Zope] PIL/Zope Problem

2000-10-27 Thread Jens Grewen

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.Imageimport BICUBIC, BILINEAR, NEAREST
 from cStringIOimport 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" [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
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.Imag