Merge branch 'master' into bbmaster2
This commit is contained in:
commit
fcb29171ad
2 changed files with 17 additions and 12 deletions
|
@ -29,11 +29,9 @@ from logging import getLogger
|
|||
import mimetypes
|
||||
import os, re, sys
|
||||
|
||||
from zope import component
|
||||
from zope.interface import implements
|
||||
from cybertools.media.interfaces import IMediaAsset, IFileTransform
|
||||
from cybertools.media.interfaces import IMediaAsset
|
||||
from cybertools.media.piltransform import PILTransform
|
||||
from cybertools.storage.filesystem import FileSystemStorage
|
||||
|
||||
TRANSFORM_STATEMENT = re.compile(r"\s*(\+?)([\w]+[\w\d]*)\(([^\)]*)\)\s*")
|
||||
|
||||
|
@ -41,14 +39,17 @@ DEFAULT_FORMATS = {
|
|||
"image": "image/jpeg"
|
||||
}
|
||||
|
||||
|
||||
def parseTransformStatements(txStr):
|
||||
""" Parse statements in transform chain strings."""
|
||||
statements = TRANSFORM_STATEMENT.findall(txStr)
|
||||
return statements
|
||||
|
||||
|
||||
def getMimeBasetype(mimetype):
|
||||
return mimetype.split("/", 1)[0]
|
||||
|
||||
|
||||
def getMimetypeExt(mimetype):
|
||||
exts = mimetypes.guess_all_extensions(mimetype)
|
||||
return exts and exts[-1] or ""
|
||||
|
|
|
@ -92,7 +92,7 @@ class PILTransform(object):
|
|||
box = (left, upper, right, lower)
|
||||
self.im = self.im.crop(box)
|
||||
|
||||
def resize(self, width, height=None):
|
||||
def resize(self, width, height=None, fill=False):
|
||||
if self.im is None:
|
||||
return
|
||||
if not height:
|
||||
|
@ -100,11 +100,15 @@ class PILTransform(object):
|
|||
ratio = float(ow) / float(oh)
|
||||
height = int(round(float(width) / ratio))
|
||||
dims = (width, height)
|
||||
try:
|
||||
self.im.thumbnail(dims, Image.ANTIALIAS)
|
||||
except IOError, e:
|
||||
logger.warn(e)
|
||||
|
||||
if fill:
|
||||
image = self.im
|
||||
image.thumbnail(dims, Image.ANTIALIAS)
|
||||
new = Image.new('RGBA', dims, (255, 255, 255, 0)) #with alpha
|
||||
new.paste(image,((dims[0] - image.size[0]) / 2,
|
||||
(dims[1] - image.size[1]) / 2))
|
||||
self.im = new
|
||||
return new
|
||||
return self.im.thumbnail(dims, Image.ANTIALIAS)
|
||||
|
||||
def save(self, path, mimetype):
|
||||
if self.im is None:
|
||||
|
|
Loading…
Add table
Reference in a new issue