diff options
author | Keshav Sharma <keshav7890@gmail.com> | 2011-07-03 11:22:14 (GMT) |
---|---|---|
committer | Keshav Sharma <keshav7890@gmail.com> | 2011-07-03 11:22:14 (GMT) |
commit | ca10d560496dc9f6edde8b422fe591c96c175a6d (patch) | |
tree | 5efdf45be57028217d8f742651301ec234824401 /PIL/ImageTransform.py |
added activity folder
Diffstat (limited to 'PIL/ImageTransform.py')
-rw-r--r-- | PIL/ImageTransform.py | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/PIL/ImageTransform.py b/PIL/ImageTransform.py new file mode 100644 index 0000000..2944cd3 --- /dev/null +++ b/PIL/ImageTransform.py @@ -0,0 +1,91 @@ +# +# The Python Imaging Library. +# $Id: ImageTransform.py 2813 2006-10-07 10:11:35Z fredrik $ +# +# transform wrappers +# +# History: +# 2002-04-08 fl Created +# +# Copyright (c) 2002 by Secret Labs AB +# Copyright (c) 2002 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +import Image + +class Transform: + def __init__(self, data): + self.data = data + def getdata(self): + return self.method, self.data + +## +# Define an affine image transform. +# <p> +# This function takes a 6-tuple (<i>a, b, c, d, e, f</i>) which +# contain the first two rows from an affine transform matrix. For +# each pixel (<i>x, y</i>) in the output image, the new value is +# taken from a position (a <i>x</i> + b <i>y</i> + c, +# d <i>x</i> + e <i>y</i> + f) in the input image, rounded to +# nearest pixel. +# <p> +# This function can be used to scale, translate, rotate, and shear the +# original image. +# +# @def AffineTransform(matrix) +# @param matrix A 6-tuple (<i>a, b, c, d, e, f</i>) containing +# the first two rows from an affine transform matrix. +# @see Image#Image.transform + +class AffineTransform(Transform): + method = Image.AFFINE + +## +# Define a transform to extract a subregion from an image. +# <p> +# Maps a rectangle (defined by two corners) from the image to a +# rectangle of the given size. The resulting image will contain +# data sampled from between the corners, such that (<i>x0, y0</i>) +# in the input image will end up at (0,0) in the output image, +# and (<i>x1, y1</i>) at <i>size</i>. +# <p> +# This method can be used to crop, stretch, shrink, or mirror an +# arbitrary rectangle in the current image. It is slightly slower than +# <b>crop</b>, but about as fast as a corresponding <b>resize</b> +# operation. +# +# @def ExtentTransform(bbox) +# @param bbox A 4-tuple (<i>x0, y0, x1, y1</i>) which specifies +# two points in the input image's coordinate system. +# @see Image#Image.transform + +class ExtentTransform(Transform): + method = Image.EXTENT + +## +# Define an quad image transform. +# <p> +# Maps a quadrilateral (a region defined by four corners) from the +# image to a rectangle of the given size. +# +# @def QuadTransform(xy) +# @param xy An 8-tuple (<i>x0, y0, x1, y1, x2, y2, y3, y3</i>) which +# contain the upper left, lower left, lower right, and upper right +# corner of the source quadrilateral. +# @see Image#Image.transform + +class QuadTransform(Transform): + method = Image.QUAD + +## +# Define an mesh image transform. A mesh transform consists of one +# or more individual quad transforms. +# +# @def MeshTransform(data) +# @param data A list of (bbox, quad) tuples. +# @see Image#Image.transform + +class MeshTransform(Transform): + method = Image.MESH |