From 946b0847d84f8f3c217fd7c22fcdbd174cd67969 Mon Sep 17 00:00:00 2001 From: helmutm Date: Sat, 11 Sep 2010 07:30:54 +0000 Subject: [PATCH] allow resizing an image without specifying a height; this makes sure that the resulting image will have the width provided git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3991 fd906abe-77d9-0310-91a1-e0d9ade77398 --- media/asset.py | 2 +- media/piltransform.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/media/asset.py b/media/asset.py index fbd9b23..c8b4ad0 100644 --- a/media/asset.py +++ b/media/asset.py @@ -133,7 +133,7 @@ class MediaAssetFile(object): mediaFile.crop(*dims) elif command == "size": size = [int(i) for i in args.split(",")] - if size and len(size) == 2: + if size: mediaFile.resize(*size) outputFormat = self.getContentType(variant) mediaFile.save(path, outputFormat) diff --git a/media/piltransform.py b/media/piltransform.py index 56cfdc7..a040103 100644 --- a/media/piltransform.py +++ b/media/piltransform.py @@ -93,9 +93,13 @@ class PILTransform(object): box = (left, upper, right, lower) self.im = self.im.crop(box) - def resize(self, width, height): + def resize(self, width, height=None): if self.im is None: return + if not height: + ow, oh = self.im.size + ratio = float(ow) / float(oh) + height = int(round(float(width) / ratio)) dims = (width, height) self.im.thumbnail(dims, Image.ANTIALIAS)