Nolik
Nolik

Reputation: 4533

Crop the border of an image using PIL

How can I crop the border of an image using PIL?

From an image like this
Start

I want make to this
Result

Upvotes: 0

Views: 3333

Answers (1)

Bemmu
Bemmu

Reputation: 18247

img = Image.open('your_wonderful_image.png')
nonwhite_positions = [(x,y) for x in range(img.size[0]) for y in range(img.size[1]) if img.getdata()[x+y*img.size[0]] != (255,255,255)]
rect = (min([x for x,y in nonwhite_positions]), min([y for x,y in nonwhite_positions]), max([x for x,y in nonwhite_positions]), max([y for x,y in nonwhite_positions]))
img.crop(rect).save('out.png')

Upvotes: 2

Related Questions