Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah PIL Boleh Digunakan untuk Mengubah Saiz Imej Sambil Mengekalkan Nisbah Aspek?

Bagaimanakah PIL Boleh Digunakan untuk Mengubah Saiz Imej Sambil Mengekalkan Nisbah Aspek?

Linda Hamilton
Linda Hamiltonasal
2024-12-08 03:51:12318semak imbas

How Can PIL Be Used to Resize Images While Preserving Aspect Ratio?

Mengubah Saiz Imej dengan Pemeliharaan Nisbah Aspek Menggunakan PIL

Apabila menjana lakaran kecil atau menskala semula imej, mengekalkan nisbah bidang adalah penting untuk mengekalkan kesetiaan imej. PIL menyediakan kaedah mudah untuk mencapai ini sambil melaraskan dimensi lebar dan ketinggian secara dinamik.

Untuk mengubah saiz imej dengan PIL sambil mengekalkan nisbah bidangnya, ikut langkah berikut:

  1. Tentukan Saiz Maksimum: Tentukan saiz maksimum yang diingini untuk imej yang diubah saiz dari segi lebar dan ketinggian.
  2. Kira Nisbah Ubah Saiz: Kira nisbah ubah saiz dengan mengambil nilai minimum antara lebar maksimum dibahagikan dengan lebar imej asal dan ketinggian maksimum dibahagikan dengan ketinggian imej asal. Nisbah ini memastikan imej diubah saiz secara berkadar.
  3. Kira Saiz Baharu: Kira saiz imej baharu dengan mendarab saiz imej asal dengan nisbah ubah saiz.

Untuk kemudahan, PIL menawarkan kaedah yang direka khusus untuk mengubah saiz imej sambil mengekalkan nisbah bidangnya: Image.thumbnail. Berikut ialah contoh daripada dokumentasi PIL, yang mempamerkan penggunaan Image.thumbnail untuk mencipta lakaran kenit:

import os, sys
import Image

size = 128, 128

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 "cannot create thumbnail for '%s'" % infile

Contoh ini menunjukkan cara menggunakan Image.thumbnail untuk mencipta lakaran kecil daripada senarai imej input, mengekalkan aspeknya nisbah sambil memastikan saiz akhir berada dalam dimensi yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah PIL Boleh Digunakan untuk Mengubah Saiz Imej Sambil Mengekalkan Nisbah Aspek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn