Python Multimedia
上QQ阅读APP看书,第一时间看更新

Basic image manipulations

Now that we know how to open and save images, let's learn some basic techniques to manipulate images. PIL supports a variety of geometric manipulation operations, such as resizing an image, rotating it by an angle, flipping it top to bottom or left to right, and so on. It also facilitates operations such as cropping, cutting and pasting pieces of images, and so on.

Resizing

Changing the dimensions of an image is one of the most frequently used image manipulation operations. The image resizing is accomplished using Image.resize in PIL. The following line of code explains how it is achieved.

foo = img.resize(size, filter)

Here, img is an image (an instance of class Image) and the result of resizing operation is stored in foo (another instance of class Image). The size argument is a tuple (width, height). Note that the size is specified in pixels. Thus, resizing the image means modifying the number of pixels in the image. This is also known as image re-sampling. The Image.resize method also takes filter as an optional argument. A filter is an interpolation algorithm used while re-sampling the given image. It handles deletion or addition of pixels during re-sampling, when the resize operation is intended to make image smaller or larger in size respectively. There are four filters available. The resize filters in the increasing order of quality are NEAREST, BILINEAR, BICUBIC, and ANTIALIAS. The default filter option is NEAREST.