[Erp5-report] r12372 - /erp5/trunk/products/ERP5/Document/Image.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jan 25 16:52:53 CET 2007


Author: bartek
Date: Thu Jan 25 16:52:49 2007
New Revision: 12372

URL: http://svn.erp5.org?rev=12372&view=rev
Log:
fixed resize function because it did not work (and needlesly used filesystem)

Modified:
    erp5/trunk/products/ERP5/Document/Image.py

Modified: erp5/trunk/products/ERP5/Document/Image.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Image.py?rev=12372&r1=12371&r2=12372&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Image.py (original)
+++ erp5/trunk/products/ERP5/Document/Image.py Thu Jan 25 16:52:49 2007
@@ -28,6 +28,12 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 ##############################################################################
+
+import os
+import string
+import sys
+import time
+from cStringIO import StringIO
 
 from AccessControl import ClassSecurityInfo
 from Acquisition import aq_base
@@ -39,8 +45,6 @@
 from OFS.Image import Image as OFSImage
 from OFS.Image import getImageInfo
 from OFS.content_types import guess_content_type
-import string, time, sys
-from cStringIO import StringIO
 
 from zLOG import LOG
 
@@ -301,40 +305,30 @@
   def _resize(self, display, width, height, quality=75, format='', resolution=None):
       """Resize and resample photo."""
       newimg = StringIO()
+      os.putenv('TMPDIR', '/tmp') # because if we run zope as root, we have /root/tmp here and convert goes crazy
 
       if sys.platform == 'win32':
           from win32pipe import popen2
-          from tempfile import mktemp
-          newimg_path = mktemp(suffix=format)
           if resolution is None:
-            imgin, imgout = popen2('convert -quality %s -geometry %sx%s - %s'
-                                  % (quality, width, height, newimg_path), 'b')
+            imgin, imgout = popen2('convert -quality %s -geometry %sx%s - -'
+                                  % (quality, width, height), 'b')
           else:
-            imgin, imgout = popen2('convert -density %sx%s -quality %s -geometry %sx%s - %s'
-                                  % (resolution, resolution, quality, width, height, newimg_path), 'b')
+            imgin, imgout = popen2('convert -density %sx%s -quality %s -geometry %sx%s - -'
+                                  % (resolution, resolution, quality, width, height), 'b')
 
       else:
           from popen2 import popen2
-          import tempfile
-          tempdir = tempfile.tempdir
-          tempfile.tempdir = '/tmp'
-          newimg_path = tempfile.mktemp(suffix='.' + format)
-          tempfile.tempdir = tempdir
           if resolution is None:
-            imgout, imgin = popen2('convert -quality %s -geometry %sx%s - %s'
-                                  % (quality, width, height, newimg_path))
+            imgout, imgin = popen2('convert -quality %s -geometry %sx%s - -'
+                                  % (quality, width, height))
           else:
             LOG('Resolution',0,str(resolution))
-            imgout, imgin = popen2('convert -density %sx%s -quality %s -geometry %sx%s - %s'
-                                  % (resolution, resolution, quality, width, height, newimg_path))
+            cmd = 'convert -density %sx%s -quality %s -geometry %sx%s - -' % (resolution, resolution, quality, width, height)
+            imgout, imgin = popen2(cmd)
 
       imgin.write(str(self.getData()))
       imgin.close()
-      imgout.read()
-      imgout.close()
-      newimg_file = open(newimg_path, 'r')
-      newimg.write(newimg_file.read())
-      newimg_file.close()
+      newimg.write(imgout.read())
       newimg.seek(0)
       return newimg
 




More information about the Erp5-report mailing list