cybertools/media/interfaces.py
helmutm 8a37852f48 make modification date for media assets editable
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3230 fd906abe-77d9-0310-91a1-e0d9ade77398
2009-02-15 11:05:28 +00:00

84 lines
2.6 KiB
Python

#
# Copyright (c) 2008 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
"""
Media asset management interface definitions.
$Id$
"""
from zope.interface import Interface, Attribute
from zope.i18nmessageid import MessageFactory
from zope import schema
_ = MessageFactory('cybertools.media')
class IMediaAsset(Interface):
modified = schema.Date(
title=_(u'Date'),
description=_(u'The date/time the picture was taken.'),
required=False,)
def getData(variant=None):
""" Return the binary data of the media asset or one of its variants.
"""
def getContentType(variant=None):
""" Return the mime-formatted content type of the media asset
or one of its variants.
"""
def transform(rules):
""" Generate user-defined transformed variants of the media asset
according to the rules given.
"""
class IFileTransform(Interface):
""" Transformations using files in the filesystem.
"""
def open(path):
""" Open the image under the given filename.
"""
def save(path, mimetype):
""" Save the image under the given filename.
"""
def rotate(rotangle):
""" Return a copy of an image rotated the given number of degrees
counter clockwise around its centre.
"""
def color(mode):
""" Create image with specified color mode (e.g. 'greyscale').
"""
def crop(relWidth, relHeight, alignX=0.5, alignY=0.5):
""" Return a rectangular region from the current image. The box is defined
by a relative width and a relative height defining the crop aspect
as well as a horizontal (x) and a verical (y) alignment parameters.
"""
def resize(width, height):
""" Modify the image to contain a thumbnail version of itself, no
larger than the given size.
"""