Antworten:
Es gibt eine crop()
Methode:
w, h = yourImage.size
yourImage.crop((0, 30, w, h-30)).save(...)
Parameters: box – The crop rectangle, as a (left, upper, right, lower)-tuple.
Dazu müssen Sie PIL (Pillow) importieren. Angenommen, Sie haben ein Bild der Größe 1200, 1600. Wir werden Bilder von 400, 400 bis 800, 800 zuschneiden
from PIL import Image
img = Image.open("ImageName.jpg")
area = (400, 400, 800, 800)
cropped_img = img.crop(area)
cropped_img.show()
(links, oben, rechts, unten) bedeutet zwei Punkte,
Bei einem Bild mit 800 x 600 Pixeln ist der linke obere Punkt des Bildes (0, 0) und der rechte untere Punkt (800, 600).
Also, um das Bild zur Hälfte zu schneiden:
from PIL import Image
img = Image.open("ImageName.jpg")
img_left_area = (0, 0, 400, 600)
img_right_area = (400, 0, 800, 600)
img_left = img.crop(img_left_area)
img_right = img.crop(img_right_area)
img_left.show()
img_right.show()
Die Python Imaging Library verwendet ein kartesisches Pixelkoordinatensystem mit (0,0) in der oberen linken Ecke. Beachten Sie, dass sich die Koordinaten auf die implizierten Pixelecken beziehen. Das Zentrum eines als (0, 0) adressierten Pixels liegt tatsächlich bei (0,5, 0,5).
Koordinaten werden normalerweise als 2-Tupel (x, y) an die Bibliothek übergeben. Rechtecke werden als 4-Tupel dargestellt, wobei die obere linke Ecke zuerst angegeben wird. Beispielsweise wird ein Rechteck, das das gesamte Bild mit 800 x 600 Pixeln abdeckt, als (0, 0, 800, 600) geschrieben.
Eine einfachere Möglichkeit hierfür ist die Verwendung von Zuschneiden aus ImageOps . Sie können die Anzahl der Pixel eingeben, die Sie von jeder Seite zuschneiden möchten.
from PIL import ImageOps
border = (0, 30, 0, 30) # left, up, right, bottom
ImageOps.crop(img, border)