I'm trying to crop a picture to 1000 by 1000 pixels. It works to crop the far left of the picture.
img = Image.open('image.jpg')
(width, height) = img.size
if width >= height:
multiplier = 1000 / height
height = int(height * multiplier + 1)
width = int(width * multiplier + 1)
img = img.resize((width, height))
cropped_img = img.crop((0,0, 1000,1000))
cropped_img.save("background_image.png")
if height >= width:
multiplier = 1000 / width
width = int(width * multiplier + 1)
height = int(height * multiplier + 1)
img = img.resize((height, width))
cropped_img = img.crop((0,0, 1000,1000))
cropped_img.save("background_image.png")
However, if I attempt to change the crop to the far right it returns an error:
SystemError: tile cannot extend outside image
img = Image.open('image.jpg')
(width, height) = img.size
if width >= height:
multiplier = 1000 / height
height = int(height * multiplier + 1)
width = int(width * multiplier + 1)
img = img.resize((width, height))
cropped_img = img.crop((1000,1000, 0, 0))
cropped_img.save("background_image.png")
if height >= width:
multiplier = 1000 / width
width = int(width * multiplier + 1)
height = int(height * multiplier + 1)
img = img.resize((height, width))
cropped_img = img.crop((1000,1000, 0, 0))
cropped_img.save("background_image.png")
As the comments and the documentation pointed out, parameters should be supplied in the form of (left, upper, right, lower)
.
In your case, this translates to (width - 1000, height - 1000, width, height)