2012-04-02 25 views
61

Ich möchte Bild in der Art zuschneiden, indem Sie die ersten 30 Zeilen und die letzten 30 Zeilen aus dem gegebenen Bild entfernen. Ich habe gesucht, aber nicht die genaue Lösung bekommen. Hat jemand ein paar Vorschläge?Beschneiden Sie das Bild mit PIL in Python

Antwort

111

Es gibt eine crop() Methode:

w, h = yourImage.size 
yourImage.crop((0, 30, w, h-30)).save(...) 
+1

Ja, ich weiß, dass im.crop (box) verwendet wird, um das Bild für das Zuschneiden Zuschneiden Angenommen hat. Aber ich möchte nur den oberen und unteren Teil des Bildes nicht links und rechts zuschneiden, obwohl box() 4 Tupel verwendet, aber ich bekomme nicht, wie man den oberen und unteren Teil des Bildes schneidet. –

+2

@TajKoyal: Genau was Ninjagecko zeigt, ist, wie Sie oben und unten abschneiden. Er gibt ein Rechteck für das neue Bild an. Sie können sehen, dass er 30 Pixel vom y-Wert an den oberen und unteren Punkten abschneidet. Wenn Sie die x-Werte in irgendeiner Weise versetzen, würde dies die linke und rechte Seite beeinflussen. – jdi

+1

Danke Jungs für die Hilfe. –

7

Sie benötigen PIL (Kissen) für diese zu importieren. Sie ein Bild von Größe 1200, 1600. Wir Bild von 400, 400 bis 800, 800

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