mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	There are two main issues fixed with this commit: * bytes vs. str: All file, image, and palette data are now handled as bytes. A new _binary module consolidates the hacks needed to do this across Python versions. tostring/fromstring methods have been renamed to tobytes/frombytes, but the Python 2.6/2.7 versions alias them to the old names for compatibility. Users should move to tobytes/frombytes. One other potentially-breaking change is that text data in image files (such as tags, comments) are now explicitly handled with a specific character encoding in mind. This works well with the Unicode str in Python 3, but may trip up old code expecting a straight byte-for-byte translation to a Python string. This also required a change to Gohlke's tags tests (in Tests/test_file_png.py) to expect Unicode strings from the code. * True div vs. floor div: Many division operations used the "/" operator to do floor division, which is now the "//" operator in Python 3. These were fixed. As of this commit, on the first pass, I have one failing test (improper handling of a slice object in a C module, test_imagepath.py) in Python 3, and three that that I haven't tried running yet (test_imagegl, test_imagegrab, and test_imageqt). I also haven't tested anything on Windows. All but the three skipped tests run flawlessly against Pythons 2.6 and 2.7.
		
			
				
	
	
		
			558 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			558 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
====================
 | 
						|
The PIL.Image Module
 | 
						|
====================
 | 
						|
 | 
						|
The PIL.Image Module
 | 
						|
====================
 | 
						|
 | 
						|
**blend(im1, im2, alpha)** [`# <#PIL.Image.blend-function>`_]
 | 
						|
    Creates a new image by interpolating between two input images, using
 | 
						|
    a constant alpha.
 | 
						|
 | 
						|
    ::
 | 
						|
 | 
						|
           out = image1 * (1.0 - alpha) + image2 * alpha
 | 
						|
 | 
						|
    *im1*
 | 
						|
    *im2*
 | 
						|
    *alpha*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**composite(image1, image2, mask)**
 | 
						|
[`# <#PIL.Image.composite-function>`_]
 | 
						|
 | 
						|
    *image1*
 | 
						|
    *image2*
 | 
						|
    *mask*
 | 
						|
 | 
						|
**eval(image, function)** [`# <#PIL.Image.eval-function>`_]
 | 
						|
 | 
						|
    *image*
 | 
						|
    *function*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**frombuffer(mode, size, data, decoder\_name="raw", \*args)**
 | 
						|
[`# <#PIL.Image.frombuffer-function>`_]
 | 
						|
    (New in 1.1.4) Creates an image memory referencing pixel data in a
 | 
						|
    byte buffer.
 | 
						|
 | 
						|
    This function is similar to
 | 
						|
    `**frombytes** <#PIL.Image.frombytes-function>`_, but uses data in
 | 
						|
    the byte buffer, where possible. This means that changes to the
 | 
						|
    original buffer object are reflected in this image). Not all modes
 | 
						|
    can share memory; support modes include "L", "RGBX", "RGBA", and
 | 
						|
    "CMYK". For other modes, this function behaves like a corresponding
 | 
						|
    call to the **fromstring** function.
 | 
						|
 | 
						|
    Note that this function decodes pixel data only, not entire images.
 | 
						|
    If you have an entire image file in a string, wrap it in a
 | 
						|
    **StringIO** object, and use `**open** <#PIL.Image.open-function>`_
 | 
						|
    to load it.
 | 
						|
 | 
						|
    *mode*
 | 
						|
    *size*
 | 
						|
    *data*
 | 
						|
    *decoder\_name*
 | 
						|
    *\*args*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**frombytes(mode, size, data, decoder\_name="raw", \*args)**
 | 
						|
[`# <#PIL.Image.frombytes-function>`_]
 | 
						|
    Creates a copy of an image memory from pixel data in a buffer.
 | 
						|
 | 
						|
    In its simplest form, this function takes three arguments (mode,
 | 
						|
    size, and unpacked pixel data).
 | 
						|
 | 
						|
    You can also use any pixel decoder supported by PIL. For more
 | 
						|
    information on available decoders, see the section `*Writing Your
 | 
						|
    Own File Decoder* <pil-decoder.htm>`_.
 | 
						|
 | 
						|
    Note that this function decodes pixel data only, not entire images.
 | 
						|
    If you have an entire image in a string, wrap it in a **StringIO**
 | 
						|
    object, and use `**open** <#PIL.Image.open-function>`_ to load it.
 | 
						|
 | 
						|
    *mode*
 | 
						|
    *size*
 | 
						|
    *data*
 | 
						|
    *decoder\_name*
 | 
						|
    *\*args*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getmodebandnames(mode)** [`# <#PIL.Image.getmodebandnames-function>`_]
 | 
						|
    Gets a list of individual band names. Given a mode, this function
 | 
						|
    returns a tuple containing the names of individual bands (use
 | 
						|
    `**getmodetype** <#PIL.Image.getmodetype-function>`_ to get the mode
 | 
						|
    used to store each individual band.
 | 
						|
 | 
						|
    *mode*
 | 
						|
    Returns:
 | 
						|
    Raises **KeyError**:
 | 
						|
 | 
						|
**getmodebands(mode)** [`# <#PIL.Image.getmodebands-function>`_]
 | 
						|
 | 
						|
    *mode*
 | 
						|
    Returns:
 | 
						|
    Raises **KeyError**:
 | 
						|
 | 
						|
**getmodebase(mode)** [`# <#PIL.Image.getmodebase-function>`_]
 | 
						|
 | 
						|
    *mode*
 | 
						|
    Returns:
 | 
						|
    Raises **KeyError**:
 | 
						|
 | 
						|
**getmodetype(mode)** [`# <#PIL.Image.getmodetype-function>`_]
 | 
						|
 | 
						|
    *mode*
 | 
						|
    Returns:
 | 
						|
    Raises **KeyError**:
 | 
						|
 | 
						|
**Image()** (class) [`# <#PIL.Image.Image-class>`_]
 | 
						|
    This class represents an image object.
 | 
						|
 | 
						|
    For more information about this class, see `*The Image
 | 
						|
    Class* <#PIL.Image.Image-class>`_.
 | 
						|
 | 
						|
**init()** [`# <#PIL.Image.init-function>`_]
 | 
						|
**isDirectory(f)** [`# <#PIL.Image.isDirectory-function>`_]
 | 
						|
**isImageType(t)** [`# <#PIL.Image.isImageType-function>`_]
 | 
						|
**isStringType(t)** [`# <#PIL.Image.isStringType-function>`_]
 | 
						|
**merge(mode, bands)** [`# <#PIL.Image.merge-function>`_]
 | 
						|
 | 
						|
    *mode*
 | 
						|
    *bands*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**new(mode, size, color=0)** [`# <#PIL.Image.new-function>`_]
 | 
						|
 | 
						|
    *mode*
 | 
						|
    *size*
 | 
						|
    *color*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**open(file, mode="r")** [`# <#PIL.Image.open-function>`_]
 | 
						|
    Opens and identifies the given image file.
 | 
						|
 | 
						|
    This is a lazy operation; this function identifies the file, but the
 | 
						|
    actual image data is not read from the file until you try to process
 | 
						|
    the data (or call the `**load** <#PIL.Image.Image.load-method>`_
 | 
						|
    method).
 | 
						|
 | 
						|
    *file*
 | 
						|
        A filename (string) or a file object. The file object must
 | 
						|
        implement **read**, **seek**, and **tell** methods, and be
 | 
						|
        opened in binary mode.
 | 
						|
    *mode*
 | 
						|
    Returns:
 | 
						|
    Raises **IOError**:
 | 
						|
 | 
						|
**preinit()** [`# <#PIL.Image.preinit-function>`_]
 | 
						|
**register\_extension(id, extension)**
 | 
						|
[`# <#PIL.Image.register_extension-function>`_]
 | 
						|
 | 
						|
    *id*
 | 
						|
    *extension*
 | 
						|
 | 
						|
**register\_mime(id, mimetype)**
 | 
						|
[`# <#PIL.Image.register_mime-function>`_]
 | 
						|
 | 
						|
    *id*
 | 
						|
    *mimetype*
 | 
						|
 | 
						|
**register\_open(id, factory, accept=None)**
 | 
						|
[`# <#PIL.Image.register_open-function>`_]
 | 
						|
 | 
						|
    *id*
 | 
						|
    *factory*
 | 
						|
    *accept*
 | 
						|
 | 
						|
**register\_save(id, driver)**
 | 
						|
[`# <#PIL.Image.register_save-function>`_]
 | 
						|
 | 
						|
    *id*
 | 
						|
    *driver*
 | 
						|
 | 
						|
The Image Class
 | 
						|
---------------
 | 
						|
 | 
						|
**Image()** (class) [`# <#PIL.Image.Image-class>`_]
 | 
						|
**convert(mode, matrix=None)** [`# <#PIL.Image.Image.convert-method>`_]
 | 
						|
    Returns a converted copy of this image. For the "P" mode, this
 | 
						|
    method translates pixels through the palette. If mode is omitted, a
 | 
						|
    mode is chosen so that all information in the image and the palette
 | 
						|
    can be represented without a palette.
 | 
						|
 | 
						|
    The current version supports all possible conversions between "L",
 | 
						|
    "RGB" and "CMYK."
 | 
						|
 | 
						|
    When translating a colour image to black and white (mode "L"), the
 | 
						|
    library uses the ITU-R 601-2 luma transform:
 | 
						|
 | 
						|
    **L = R \* 299/1000 + G \* 587/1000 + B \* 114/1000**
 | 
						|
 | 
						|
    When translating a greyscale image into a bilevel image (mode "1"),
 | 
						|
    all non-zero values are set to 255 (white). To use other thresholds,
 | 
						|
    use the `**point** <#PIL.Image.Image.point-method>`_ method.
 | 
						|
 | 
						|
    *mode*
 | 
						|
    *matrix*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**copy()** [`# <#PIL.Image.Image.copy-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**crop(box=None)** [`# <#PIL.Image.Image.crop-method>`_]
 | 
						|
    Returns a rectangular region from this image. The box is a 4-tuple
 | 
						|
    defining the left, upper, right, and lower pixel coordinate.
 | 
						|
 | 
						|
    This is a lazy operation. Changes to the source image may or may not
 | 
						|
    be reflected in the cropped image. To break the connection, call the
 | 
						|
    `**load** <#PIL.Image.Image.load-method>`_ method on the cropped
 | 
						|
    copy.
 | 
						|
 | 
						|
    *The*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**draft(mode, size)** [`# <#PIL.Image.Image.draft-method>`_]
 | 
						|
    Configures the image file loader so it returns a version of the
 | 
						|
    image that as closely as possible matches the given mode and size.
 | 
						|
    For example, you can use this method to convert a colour JPEG to
 | 
						|
    greyscale while loading it, or to extract a 128x192 version from a
 | 
						|
    PCD file.
 | 
						|
 | 
						|
    Note that this method modifies the Image object in place. If the
 | 
						|
    image has already been loaded, this method has no effect.
 | 
						|
 | 
						|
    *mode*
 | 
						|
    *size*
 | 
						|
 | 
						|
**filter(filter)** [`# <#PIL.Image.Image.filter-method>`_]
 | 
						|
    Filters this image using the given filter. For a list of available
 | 
						|
    filters, see the **ImageFilter** module.
 | 
						|
 | 
						|
    *filter*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**frombytes(data, decoder\_name="raw", \*args)**
 | 
						|
[`# <#PIL.Image.Image.frombytes-method>`_]
 | 
						|
    Loads this image with pixel data from a byte uffer.
 | 
						|
 | 
						|
    This method is similar to the
 | 
						|
    `**frombytes** <#PIL.Image.frombytes-function>`_ function, but
 | 
						|
    loads data into this image instead of creating a new image object.
 | 
						|
 | 
						|
    (In Python 2.6 and 2.7, this is also available as fromstring().)
 | 
						|
 | 
						|
**getbands()** [`# <#PIL.Image.Image.getbands-method>`_]
 | 
						|
    Returns a tuple containing the name of each band in this image. For
 | 
						|
    example, **getbands** on an RGB image returns ("R", "G", "B").
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getbbox()** [`# <#PIL.Image.Image.getbbox-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getcolors(maxcolors=256)** [`# <#PIL.Image.Image.getcolors-method>`_]
 | 
						|
 | 
						|
    *maxcolors*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getdata(band=None)** [`# <#PIL.Image.Image.getdata-method>`_]
 | 
						|
    Returns the contents of this image as a sequence object containing
 | 
						|
    pixel values. The sequence object is flattened, so that values for
 | 
						|
    line one follow directly after the values of line zero, and so on.
 | 
						|
 | 
						|
    Note that the sequence object returned by this method is an internal
 | 
						|
    PIL data type, which only supports certain sequence operations. To
 | 
						|
    convert it to an ordinary sequence (e.g. for printing), use
 | 
						|
    **list(im.getdata())**.
 | 
						|
 | 
						|
    *band*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getextrema()** [`# <#PIL.Image.Image.getextrema-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getim()** [`# <#PIL.Image.Image.getim-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getpalette()** [`# <#PIL.Image.Image.getpalette-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getpixel(xy)** [`# <#PIL.Image.Image.getpixel-method>`_]
 | 
						|
 | 
						|
    *xy*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**getprojection()** [`# <#PIL.Image.Image.getprojection-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**histogram(mask=None)** [`# <#PIL.Image.Image.histogram-method>`_]
 | 
						|
    Returns a histogram for the image. The histogram is returned as a
 | 
						|
    list of pixel counts, one for each pixel value in the source image.
 | 
						|
    If the image has more than one band, the histograms for all bands
 | 
						|
    are concatenated (for example, the histogram for an "RGB" image
 | 
						|
    contains 768 values).
 | 
						|
 | 
						|
    A bilevel image (mode "1") is treated as a greyscale ("L") image by
 | 
						|
    this method.
 | 
						|
 | 
						|
    If a mask is provided, the method returns a histogram for those
 | 
						|
    parts of the image where the mask image is non-zero. The mask image
 | 
						|
    must have the same size as the image, and be either a bi-level image
 | 
						|
    (mode "1") or a greyscale image ("L").
 | 
						|
 | 
						|
    *mask*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**load()** [`# <#PIL.Image.Image.load-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**offset(xoffset, yoffset=None)**
 | 
						|
[`# <#PIL.Image.Image.offset-method>`_]
 | 
						|
    (Deprecated) Returns a copy of the image where the data has been
 | 
						|
    offset by the given distances. Data wraps around the edges. If
 | 
						|
    yoffset is omitted, it is assumed to be equal to xoffset.
 | 
						|
 | 
						|
    This method is deprecated. New code should use the **offset**
 | 
						|
    function in the **ImageChops** module.
 | 
						|
 | 
						|
    *xoffset*
 | 
						|
    *yoffset*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**paste(im, box=None, mask=None)**
 | 
						|
[`# <#PIL.Image.Image.paste-method>`_]
 | 
						|
    Pastes another image into this image. The box argument is either a
 | 
						|
    2-tuple giving the upper left corner, a 4-tuple defining the left,
 | 
						|
    upper, right, and lower pixel coordinate, or None (same as (0, 0)).
 | 
						|
    If a 4-tuple is given, the size of the pasted image must match the
 | 
						|
    size of the region.
 | 
						|
 | 
						|
    If the modes don't match, the pasted image is converted to the mode
 | 
						|
    of this image (see the
 | 
						|
    `**convert** <#PIL.Image.Image.convert-method>`_ method for
 | 
						|
    details).
 | 
						|
 | 
						|
    Instead of an image, the source can be a integer or tuple containing
 | 
						|
    pixel values. The method then fills the region with the given
 | 
						|
    colour. When creating RGB images, you can also use colour strings as
 | 
						|
    supported by the ImageColor module.
 | 
						|
 | 
						|
    If a mask is given, this method updates only the regions indicated
 | 
						|
    by the mask. You can use either "1", "L" or "RGBA" images (in the
 | 
						|
    latter case, the alpha band is used as mask). Where the mask is 255,
 | 
						|
    the given image is copied as is. Where the mask is 0, the current
 | 
						|
    value is preserved. Intermediate values can be used for transparency
 | 
						|
    effects.
 | 
						|
 | 
						|
    Note that if you paste an "RGBA" image, the alpha band is ignored.
 | 
						|
    You can work around this by using the same image as both source
 | 
						|
    image and mask.
 | 
						|
 | 
						|
    *im*
 | 
						|
    *box*
 | 
						|
        An optional 4-tuple giving the region to paste into. If a
 | 
						|
        2-tuple is used instead, it's treated as the upper left corner.
 | 
						|
        If omitted or None, the source is pasted into the upper left
 | 
						|
        corner.
 | 
						|
 | 
						|
        If an image is given as the second argument and there is no
 | 
						|
        third, the box defaults to (0, 0), and the second argument is
 | 
						|
        interpreted as a mask image.
 | 
						|
 | 
						|
    *mask*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**point(lut, mode=None)** [`# <#PIL.Image.Image.point-method>`_]
 | 
						|
 | 
						|
    *lut*
 | 
						|
    *mode*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**putalpha(alpha)** [`# <#PIL.Image.Image.putalpha-method>`_]
 | 
						|
 | 
						|
    *im*
 | 
						|
 | 
						|
**putdata(data, scale=1.0, offset=0.0)**
 | 
						|
[`# <#PIL.Image.Image.putdata-method>`_]
 | 
						|
    Copies pixel data to this image. This method copies data from a
 | 
						|
    sequence object into the image, starting at the upper left corner
 | 
						|
    (0, 0), and continuing until either the image or the sequence ends.
 | 
						|
    The scale and offset values are used to adjust the sequence values:
 | 
						|
    **pixel = value\*scale + offset**.
 | 
						|
 | 
						|
    *data*
 | 
						|
    *scale*
 | 
						|
    *offset*
 | 
						|
 | 
						|
**putpalette(data)** [`# <#PIL.Image.Image.putpalette-method>`_]
 | 
						|
 | 
						|
    *data*
 | 
						|
 | 
						|
**putpixel(xy, value)** [`# <#PIL.Image.Image.putpixel-method>`_]
 | 
						|
    Modifies the pixel at the given position. The colour is given as a
 | 
						|
    single numerical value for single-band images, and a tuple for
 | 
						|
    multi-band images.
 | 
						|
 | 
						|
    Note that this method is relatively slow. For more extensive
 | 
						|
    changes, use `**paste** <#PIL.Image.Image.paste-method>`_ or the
 | 
						|
    **ImageDraw** module instead.
 | 
						|
 | 
						|
    *xy*
 | 
						|
    *value*
 | 
						|
 | 
						|
**resize(size, filter=NEAREST)** [`# <#PIL.Image.Image.resize-method>`_]
 | 
						|
 | 
						|
    *size*
 | 
						|
    *filter*
 | 
						|
        An optional resampling filter. This can be one of **NEAREST**
 | 
						|
        (use nearest neighbour), **BILINEAR** (linear interpolation in a
 | 
						|
        2x2 environment), **BICUBIC** (cubic spline interpolation in a
 | 
						|
        4x4 environment), or **ANTIALIAS** (a high-quality downsampling
 | 
						|
        filter). If omitted, or if the image has mode "1" or "P", it is
 | 
						|
        set **NEAREST**.
 | 
						|
    Returns:
 | 
						|
 | 
						|
**rotate(angle, filter=NEAREST)**
 | 
						|
[`# <#PIL.Image.Image.rotate-method>`_]
 | 
						|
 | 
						|
    *angle*
 | 
						|
    *filter*
 | 
						|
        An optional resampling filter. This can be one of **NEAREST**
 | 
						|
        (use nearest neighbour), **BILINEAR** (linear interpolation in a
 | 
						|
        2x2 environment), or **BICUBIC** (cubic spline interpolation in
 | 
						|
        a 4x4 environment). If omitted, or if the image has mode "1" or
 | 
						|
        "P", it is set **NEAREST**.
 | 
						|
    Returns:
 | 
						|
 | 
						|
**save(file, format=None, \*\*options)**
 | 
						|
[`# <#PIL.Image.Image.save-method>`_]
 | 
						|
    Saves this image under the given filename. If no format is
 | 
						|
    specified, the format to use is determined from the filename
 | 
						|
    extension, if possible.
 | 
						|
 | 
						|
    Keyword options can be used to provide additional instructions to
 | 
						|
    the writer. If a writer doesn't recognise an option, it is silently
 | 
						|
    ignored. The available options are described later in this handbook.
 | 
						|
 | 
						|
    You can use a file object instead of a filename. In this case, you
 | 
						|
    must always specify the format. The file object must implement the
 | 
						|
    **seek**, **tell**, and **write** methods, and be opened in binary
 | 
						|
    mode.
 | 
						|
 | 
						|
    *file*
 | 
						|
    *format*
 | 
						|
    *\*\*options*
 | 
						|
    Returns:
 | 
						|
    Raises **KeyError**:
 | 
						|
    Raises **IOError**:
 | 
						|
 | 
						|
**seek(frame)** [`# <#PIL.Image.Image.seek-method>`_]
 | 
						|
    Seeks to the given frame in this sequence file. If you seek beyond
 | 
						|
    the end of the sequence, the method raises an **EOFError**
 | 
						|
    exception. When a sequence file is opened, the library automatically
 | 
						|
    seeks to frame 0.
 | 
						|
 | 
						|
    Note that in the current version of the library, most sequence
 | 
						|
    formats only allows you to seek to the next frame.
 | 
						|
 | 
						|
    *frame*
 | 
						|
    Raises **EOFError**:
 | 
						|
 | 
						|
**show(title=None)** [`# <#PIL.Image.Image.show-method>`_]
 | 
						|
    Displays this image. This method is mainly intended for debugging
 | 
						|
    purposes.
 | 
						|
 | 
						|
    On Unix platforms, this method saves the image to a temporary PPM
 | 
						|
    file, and calls the **xv** utility.
 | 
						|
 | 
						|
    On Windows, it saves the image to a temporary BMP file, and uses the
 | 
						|
    standard BMP display utility to show it (usually Paint).
 | 
						|
 | 
						|
    *title*
 | 
						|
 | 
						|
**split()** [`# <#PIL.Image.Image.split-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**tell()** [`# <#PIL.Image.Image.tell-method>`_]
 | 
						|
 | 
						|
    Returns:
 | 
						|
 | 
						|
**thumbnail(size, resample=NEAREST)**
 | 
						|
[`# <#PIL.Image.Image.thumbnail-method>`_]
 | 
						|
    Make this image into a thumbnail. This method modifies the image to
 | 
						|
    contain a thumbnail version of itself, no larger than the given
 | 
						|
    size. This method calculates an appropriate thumbnail size to
 | 
						|
    preserve the aspect of the image, calls the
 | 
						|
    `**draft** <#PIL.Image.Image.draft-method>`_ method to configure the
 | 
						|
    file reader (where applicable), and finally resizes the image.
 | 
						|
 | 
						|
    Note that the bilinear and bicubic filters in the current version of
 | 
						|
    PIL are not well-suited for thumbnail generation. You should use
 | 
						|
    **ANTIALIAS** unless speed is much more important than quality.
 | 
						|
 | 
						|
    Also note that this function modifies the Image object in place. If
 | 
						|
    you need to use the full resolution image as well, apply this method
 | 
						|
    to a `**copy** <#PIL.Image.Image.copy-method>`_ of the original
 | 
						|
    image.
 | 
						|
 | 
						|
    *size*
 | 
						|
    *resample*
 | 
						|
        Optional resampling filter. This can be one of **NEAREST**,
 | 
						|
        **BILINEAR**, **BICUBIC**, or **ANTIALIAS** (best quality). If
 | 
						|
        omitted, it defaults to **NEAREST** (this will be changed to
 | 
						|
        ANTIALIAS in a future version).
 | 
						|
    Returns:
 | 
						|
 | 
						|
**tobitmap(name="image")** [`# <#PIL.Image.Image.tobitmap-method>`_]
 | 
						|
 | 
						|
    *name*
 | 
						|
    Returns:
 | 
						|
    Raises **ValueError**:
 | 
						|
 | 
						|
**tobytes(encoder\_name="raw", \*args)**
 | 
						|
[`# <#PIL.Image.Image.tobytes-method>`_]
 | 
						|
    (In Python 2.6 and 2.7, this is also available as tostring().)
 | 
						|
 | 
						|
    *encoder\_name*
 | 
						|
    *\*args*
 | 
						|
    Returns:
 | 
						|
 | 
						|
**transform(size, method, data, resample=NEAREST)**
 | 
						|
[`# <#PIL.Image.Image.transform-method>`_]
 | 
						|
    Transforms this image. This method creates a new image with the
 | 
						|
    given size, and the same mode as the original, and copies data to
 | 
						|
    the new image using the given transform.
 | 
						|
 | 
						|
    *size*
 | 
						|
    *method*
 | 
						|
        The transformation method. This is one of **EXTENT** (cut out a
 | 
						|
        rectangular subregion), **AFFINE** (affine transform),
 | 
						|
        **PERSPECTIVE** (perspective transform), **QUAD** (map a
 | 
						|
        quadrilateral to a rectangle), or **MESH** (map a number of
 | 
						|
        source quadrilaterals in one operation).
 | 
						|
    *data*
 | 
						|
    *resample*
 | 
						|
        Optional resampling filter. It can be one of **NEAREST** (use
 | 
						|
        nearest neighbour), **BILINEAR** (linear interpolation in a 2x2
 | 
						|
        environment), or **BICUBIC** (cubic spline interpolation in a
 | 
						|
        4x4 environment). If omitted, or if the image has mode "1" or
 | 
						|
        "P", it is set to **NEAREST**.
 | 
						|
    Returns:
 | 
						|
 | 
						|
**transpose(method)** [`# <#PIL.Image.Image.transpose-method>`_]
 | 
						|
 | 
						|
    *method*
 | 
						|
        One of **FLIP\_LEFT\_RIGHT**, **FLIP\_TOP\_BOTTOM**,
 | 
						|
        **ROTATE\_90**, **ROTATE\_180**, or **ROTATE\_270**.
 | 
						|
 | 
						|
**verify()** [`# <#PIL.Image.Image.verify-method>`_]
 |