[Checkins] SVN: z3c.image/trunk/src/z3c/image/ cache results
Bernd Dorn
bernd.dorn at fhv.at
Thu Aug 31 04:11:33 EDT 2006
Log message for revision 69898:
cache results
Changed:
U z3c.image/trunk/src/z3c/image/image.py
U z3c.image/trunk/src/z3c/image/proc/adapter.py
-=-
Modified: z3c.image/trunk/src/z3c/image/image.py
===================================================================
--- z3c.image/trunk/src/z3c/image/image.py 2006-08-31 07:31:43 UTC (rev 69897)
+++ z3c.image/trunk/src/z3c/image/image.py 2006-08-31 08:11:27 UTC (rev 69898)
@@ -30,7 +30,4 @@
def getImageSize(self):
return self.size
-
-
-
Modified: z3c.image/trunk/src/z3c/image/proc/adapter.py
===================================================================
--- z3c.image/trunk/src/z3c/image/proc/adapter.py 2006-08-31 07:31:43 UTC (rev 69897)
+++ z3c.image/trunk/src/z3c/image/proc/adapter.py 2006-08-31 08:11:27 UTC (rev 69898)
@@ -9,11 +9,11 @@
from interfaces import IProcessableImage
from PIL import ImageFile
from types import StringType
+from zope.app.cache.ram import RAMCache
# see http://mail.python.org/pipermail/image-sig/2003-May/002228.html
ImageFile.MAXBLOCK = 1024*1024
-import thread
-lock = thread.allocate_lock()
+imgCache = RAMCache()
class ProcessableImage(object):
@@ -59,16 +59,16 @@
return img
def rotate(self, degrees):
- self.cmds.append(('rotate',[degrees],{}))
+ self.cmds.append(('rotate',(degrees,),{}))
def crop(self, croparea):
croparea = map(int,croparea)
- self.cmds.append(('crop',[croparea],{}))
+ self.cmds.append(('crop',(croparea,),{}))
def resize(self, size):
"""See IPILImageResizeUtility"""
size = map(int,size)
- self.cmds.append(('resize',[size],{}))
+ self.cmds.append(('resize',(size,),{}))
def reset(self):
self.cmds=[]
@@ -77,11 +77,17 @@
"""processes the command queue and returns the image"""
if not self.cmds:
return self.context
+ key = {'cmds':str(self.cmds)}
+ img = imgCache.query(self.context , key)
+ if img is not None:
+ img.data.seek(0)
+ return img
pimg = self.getPILImg()
for name,args,kwords in self.cmds:
func = getattr(pimg,name)
pimg = func(*args,**kwords)
- img = self._toImage(pimg, quality=quality,optimize=optimize)
+ img = self._toImage(pimg, quality=quality, optimize=optimize)
+ imgCache.set(img, self.context, key=key)
return img
More information about the Checkins
mailing list