
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
.