Original address: http://www.cnblogs.com/way_testlife/archive/2011/04/20/2022997.html
--------------
Image module in PIL
This article is an excerpt from PIL Handbook online and has done some simple translations
can only ensure that they understand, do not guarantee the quality of translation. You are welcome to give your opinion.
------------------------------------------------------
The image module provides a class with the same name (image), as well as some factory functions, including loading a picture from a file and creating a new picture. For example, the following script first loads a picture, rotates it 45 degrees, and displays it:
1 >>> from PIL import Image 2 >>> im = Image.open ("j.jpg") 3 >>> im.rotate (a). Show ()
The following script creates a thumbnail of all the. jpg-ending pictures in the current directory.
1 from PIL import Image 2 import glob, OS 3 4 size = 128, 128 5 to infile in Glob.glob ("*.jpg"): 6 file, ext = O S.path.splitext (infile) 7 im = Image.open (infile) 8 im.thumbnail (Size, Image.antialias) 9 im.save (file + ". Thumbnail", "JPEG")
the function in the Image class .
0. NEW: This function creates a picture of the given mode and size (size). If you omit the color argument, the picture you create is filled with black, and if the color parameter is none, the picture is not initialized.
1 image.new (mode, size) => image 2 Image.new (mode, size, color) => image
1. Open: Opens and identifies the provided image file. However, when you use this function, the real image data is not read before you do the data processing. You can use the LOAD function to force load. The mode argument can be omitted, but it can only be an "R" value.
1 Image.open (infile) => image 2 Image.open (infile, mode) => image
2. Blend: Create a new picture with two images given and a constant alpha. The two pictures must be the same size and mode.
1 image.blend (Image1, Image2, Alpha) => Image 2 # Results and Operations 3 # out = Image1 * (1.0-alpha) + Image2 * Alpha
3. Composite: Use two images given and a mask parameter similar to the Alpha parameter, the value can be: "1", "L", "RGBA". The size of both pictures must be the same.
1 Image.composite (Image1, Image2, mask) => Image
4. Eval: Use a function with one parameter for each pixel of a given picture. If a given picture has more than one band (band), the function also acts on each band. Note that the function is computed once per pixel, so you cannot use some random components or other generators.
1 image.eval (image, function) => Image
5. Frombuffer: (newly added in PIL 1.1.4) use standard "raw" decoders to create an image copy in pixel data or object cache. Not all patterns support this usage. The supported mode has "L", "RGBX", "RGBA", "CMYK".
Image.frombuffer (mode, size, data) => image
6. FromString: Note that this function decodes only pixel data, not an entire picture. If you have an entire picture in a string format, wrap it with Stringio and load it with the open function.
1 # Use string-type pixel data and standard decoder "raw" to create images 2 image.fromstring (mode, size, data) => Image 3 4 # ditto. However, you are allowed to use other PIL supported pixel decoders. 5 image.fromstring (mode, size, data, decoder, parameters) => Image
7. Merge: Create a new image using a series of single band (band) images. A band is a tuple or list of images, all band must have the same size.
1 image.merge (mode, bands) => Image
methods in the Image class :
0. Convert: Returns a copy of the converted image.
1 # If mode is omitted, a ' mode is ' chosed so ' all information in the ' image and the palette can be representedwithout a Palette. 2 # When from a colour image to black and white, the library uses the Itu-r 601-2 luma transfrom:3 # L = R * 299/1000 + G * 587/1000 + B * 114/1000 4 im.convert (mode) => Image 5 6 # Converts an ' RGB ' image to ' L ' or ' RGB ' using a conv Ersion Matrix. The matrix is 4-or 16-tuple. 7 Im.convert (mode, matrix) => image
Here is an example: convert RGB to XYZ.
1 rgb2xyz = (2 0.412453, 0.357580, 0.180423, 0, 3 0.212671, 0.715160, 0.072169, 0, 4 0.019334, 0.119193, 0.950227 , 0) 5 out = Im.convert ("RGB", rgb2xyz)
1. Copy: Copies the image. You can use this method if you want to paste something into the image, but still keep the original image.
1 im.copy () => image
2. Crop: