Heim >Backend-Entwicklung >Python-Tutorial >Wie behalte ich das Seitenverhältnis bei, wenn ich die Größe von Bildern mit PIL ändere?

Wie behalte ich das Seitenverhältnis bei, wenn ich die Größe von Bildern mit PIL ändere?

DDD
DDDOriginal
2024-12-06 18:29:14531Durchsuche

How to Maintain Aspect Ratio When Resizing Images with PIL?

Beibehalten des Seitenverhältnisses bei der Größenänderung von Bildern mit PIL

In der Python Imaging Library (PIL) kann die Größe eines Bildes unter Beibehaltung des Seitenverhältnisses geändert werden durch konkrete Berechnungen erreicht werden. Beim Erstellen von Miniaturansichten ist es wichtig, die ursprünglichen Proportionen des Bildes beizubehalten.

Lösung:

  1. Maximale Größe festlegen:Bestimmen die maximalen Abmessungen für das geänderte Bild.
  2. Größenänderungsverhältnis berechnen: Berechnen Sie ein Verhältnis, indem Sie das Minimum von (maximale Breite/Originalbreite) und (maximale Höhe/Originalhöhe) nehmen.
  3. Bestimmen Sie die richtige Größe: Multiplizieren Sie die Originalgröße des Bildes mit der berechneten Verhältnis, um die geeigneten Abmessungen für die Größenänderung zu erhalten.

Der Einfachheit halber stellt PIL die Methode Image.thumbnail bereit, um die Größenänderung unter Beibehaltung des Seitenverhältnisses durchzuführen Verhältnis:

import os, sys
from PIL import Image

size = (128, 128) # Desired thumbnail size

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size, Image.Resampling.LANCZOS)
            im.save(outfile, "JPEG")
        except IOError:
            print(f"Cannot create thumbnail for '{infile}'")

In diesem Skript wird die Größe von Bildern mithilfe von Lanczos-Resampling auf eine Miniaturbildgröße von (128, 128) geändert, um die Bildqualität zu verbessern.

Das obige ist der detaillierte Inhalt vonWie behalte ich das Seitenverhältnis bei, wenn ich die Größe von Bildern mit PIL ändere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn