
Die Bildverarbeitungsbibliothek Pillow (PIL) von Python stellt Image.crop() zum Ausschneiden eines Teilbereichs eines Bildes zur Verfügung.
Dieser Artikel sterben following Inhalte mit Beispielcode.
- Normale Ernte
- Außenbereich angeben
- Beschneiden Sie die Mitte des Bildes
- Schneiden Sie das größte Quadrat aus dem Rechteck ab
Bitte lesen Sie den following Artikel für die Installation und praktische Verwendung von Pillow (PIL).
Verwenden Sie resize(), um die Größe des gesamten Bildes zu ändern, anstatt einen Teil des Bildes auszuschneiden, und verwenden Sie putalpha(), um ein transparentes Bild zu erstellen, indem Sie eine andere Form als ein Rechteck (z. B. einen Kreis) ausschneiden.
Verwenden Sie Slicing, um das Bild zuzuschneiden, das durch das NumPy-Array ndarray dargestellt wird.
Bild aus PIL importieren und Zielbild öffnen.
from PIL import Image
im = Image.open('data/src/astronaut_rect.bmp')
Normale Ernte
Legen Sie den Zuschneidebereich mit box=(links, oben, rechts, unten) fest.
Die Koordinaten oben links entsprechen (x, y) = (links, oben) und die Koordinaten unten rechts entsprechen (x, y) = (rechts, unten). Der zu beschneidende Bereich bleibt übrig
Achten Sie darauf, nicht zu vergessen, dass das Feld () erfordert.
im_crop = im.crop((60, 20, 400, 200))
im_crop.save('data/dst/astronaut_pillow_crop.jpg', quality=95)
Wenn SIE das maßgeschneiderte Bild nur speichern möchten, ohne es für andere Vorgänge zu verwenden, können Sie in eine Zeile schreiben.
im.crop((60, 20, 400, 200)).save('data/dst/astronaut_pillow_crop.jpg', quality=95)
Außenbereich angeben
Auch wenn die Außenseite des Bildes in den Zuschneidebereich gesetzt WIRD, WIRD kein Fehler ausgelöst und das Bild WIRD in Schwarz angezeigt.
im_crop_outside = im.crop((200, 150, 600, 360))
im_crop_outside.save('data/dst/astronaut_pillow_crop_outside.jpg', quality=95)
Beschneiden Sie die Mitte des Bildes
Wenn Sie die Mitte des Bildes auf eine beliebige Größe zuschneiden möchten, ist es praktisch, die folgende Funktion zu definieren.
def crop_center(pil_img, crop_width, crop_height):
img_width, img_height = pil_img.size
return pil_img.crop(((img_width - crop_width) // 2,
(img_height - crop_height) // 2,
(img_width + crop_width) // 2,
(img_height + crop_height) // 2))
Anwendungsbeispiel:
im_new = crop_center(im, 300, 150)
im_new.save('data/dst/astronaut_pillow_crop_center.jpg', quality=95)
Schneiden Sie das größte Quadrat aus dem Rechteck ab
Wenn Sie ein Miniaturbild erstellen, müssen Sie möglicherweise ein großes Quadrat aus dem rechteckigen Bild zuschneiden.
Definieren Sie eine Funktion, die ein Quadrat mit kurzer Seitenlänge aus der Mitte des rechteckigen Bildes herausschneidet.
SIE das Größenattribut, um die Höhe und Breite des Bildes zu erhalten, und min(), um das kürzere zu verwenden. Es WIRD die oben definierte Funktion crop_center() verwendet.
def crop_max_square(pil_img):
return crop_center(pil_img, min(pil_img.size), min(pil_img.size))
Anwendungsbeispiel:
im_new = crop_max_square(im)
im_new.save('data/dst/astronaut_pillow_crop_max_square.jpg', quality=95)
Weitere Informationen zum Generieren von Miniaturbildern mit Kissen finden Sie im following Artikel.