From 44c5d0175ec747bc96800948888d1f67b9f71f86 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 2 May 2016 18:57:46 +1000 Subject: [PATCH] Fixed code and added explanation to a tutorial example [ci skip] --- docs/handbook/tutorial.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/handbook/tutorial.rst b/docs/handbook/tutorial.rst index 2777feaee..1f76beafa 100644 --- a/docs/handbook/tutorial.rst +++ b/docs/handbook/tutorial.rst @@ -184,11 +184,20 @@ Rolling an image part1 = image.crop((0, 0, delta, ysize)) part2 = image.crop((delta, 0, xsize, ysize)) + part1.load() + part2.load() image.paste(part2, (0, 0, xsize-delta, ysize)) image.paste(part1, (xsize-delta, 0, xsize, ysize)) return image +Note that when pasting it back from the :py:meth:`~PIL.Image.Image.crop` +operation, :py:meth:`~PIL.Image.Image.load` is called first. This is because +cropping is a lazy operation. If :py:meth:`~PIL.Image.Image.load` was not +called, then the crop operation would not be performed until the images were +used in the paste commands. This would mean that ``part1`` would be cropped from +the version of ``image`` already modified by the first paste. + For more advanced tricks, the paste method can also take a transparency mask as an optional argument. In this mask, the value 255 indicates that the pasted image is opaque in that position (that is, the pasted image should be used as