web-dev-qa-db-fra.com

Comment recadrer une image avec PIL?

Je veux recadrer l'image de la manière en supprimant les 30 premières lignes et les 30 dernières lignes de l'image donnée. J'ai cherché mais je n'ai pas eu la solution exacte. Est-ce que quelqu'un a des suggestions?

111
Taj Koyal

Il existe une méthode crop() :

w, h = yourImage.size
yourImage.crop((0, 30, w, h-30)).save(...)
169
ninjagecko

Vous devez importer PIL (Pillow) pour cela. Supposons que vous ayez une image de taille 1200, 1600. Nous recadrerons l’image de 400, 400 à 800, 800

from PIL import Image
img = Image.open("ImageName.jpg")
area = (400, 400, 800, 800)
cropped_img = img.crop(area)
cropped_img.show()
37
Atul Chavan

Une méthode plus simple consiste à utiliser le recadrage de ImageOps . Vous pouvez indiquer le nombre de pixels que vous souhaitez rogner de chaque côté.

from PIL import ImageOps

border = (0, 30, 0, 30) # left, up, right, bottom
ImageOps.crop(img, border)
9
PouyaB