bbrooke
bbrooke

Reputation: 2347

Cropping an image with Python Pillow

I installed Python Pillow and am trying to crop an image.

Other effects work great (for example, thumbnail, blurring image, etc.)

Whenever I run the code below I get the error:

tile cannot extend outside image

test_image = test_media.file
original = Image.open(test_image)

width, height = original.size   # Get dimensions
left = width/2
top = height/2
right = width/2
bottom = height/2
cropped_example = original.crop((left, top, right, bottom))

cropped_example.show()

I used a cropping example I found for PIL, because I couldn't find one for Pillow (which I assumed would be the same).

Upvotes: 51

Views: 87554

Answers (2)

YoBro_29
YoBro_29

Reputation: 219

pillow image crop code:

img2 = img.crop((200, 330, 730, 606)) # (left, top, right, bottom)

But, those who are in hurry or are stupid like me - here is an abstraction-:)

python pillow coordinate system abstraction

Upvotes: 17

rafee
rafee

Reputation: 1771

The problem is with logic, not Pillow. Pillow is nearly 100% PIL compatible. You created an image of 0 * 0 (left = right & top = bottom) size. No display can show that. My code is as follows

from PIL import Image

test_image = "Fedora_19_with_GNOME.jpg"
original = Image.open(test_image)
original.show()

width, height = original.size   # Get dimensions
left = width/4
top = height/4
right = 3 * width/4
bottom = 3 * height/4
cropped_example = original.crop((left, top, right, bottom))

cropped_example.show()

Most probably this is not what you want. But this should guide you towards a clear idea of what should be done.

Upvotes: 86

Related Questions