Crop is no longer lazy [ci skip]

This commit is contained in:
Andrew Murray 2018-09-29 15:31:10 +10:00
parent 6072e2e595
commit bd600c6966

View File

@ -183,20 +183,11 @@ 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))
image.paste(part2, (0, 0, xsize-delta, 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