Merge pull request #6129 from radarhere/merge

This commit is contained in:
Hugo van Kemenade 2022-03-17 22:51:38 +02:00 committed by GitHub
commit f3a3b20c51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -171,20 +171,37 @@ Rolling an image
:: ::
def roll(image, delta): def roll(im, delta):
"""Roll an image sideways.""" """Roll an image sideways."""
xsize, ysize = image.size xsize, ysize = im.size
delta = delta % xsize delta = delta % xsize
if delta == 0: if delta == 0:
return image return im
part1 = image.crop((0, 0, delta, ysize)) part1 = im.crop((0, 0, delta, ysize))
part2 = image.crop((delta, 0, xsize, ysize)) part2 = im.crop((delta, 0, xsize, ysize))
image.paste(part1, (xsize - delta, 0, xsize, ysize)) im.paste(part1, (xsize - delta, 0, xsize, ysize))
image.paste(part2, (0, 0, xsize - delta, ysize)) im.paste(part2, (0, 0, xsize - delta, ysize))
return image return im
Or if you would like to merge two images into a wider image:
Merging images
^^^^^^^^^^^^^^
::
def merge(im1, im2):
w = im1.size[0] + im2.size[0]
h = max(im1.size[1], im2.size[1])
im = Image.new("RGBA", (w, h))
im.paste(im1)
im.paste(im2, (im1.size[0], 0))
return im
For more advanced tricks, the paste method can also take a transparency mask as 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 an optional argument. In this mask, the value 255 indicates that the pasted