Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengekalkan Nisbah Aspek Apabila Mengubah Saiz Imej dengan PIL?

Bagaimana untuk Mengekalkan Nisbah Aspek Apabila Mengubah Saiz Imej dengan PIL?

DDD
Lepaskan: 2024-12-06 18:29:14
asal
580 orang telah melayarinya

How to Maintain Aspect Ratio When Resizing Images with PIL?

Memelihara Nisbah Aspek semasa Mengubah Saiz Imej Menggunakan PIL

Dalam Perpustakaan Pengimejan Python (PIL), mengubah saiz imej sambil mengekalkan nisbah aspeknya boleh dicapai melalui pengiraan tertentu. Apabila mencipta lakaran kecil, adalah penting untuk mengekalkan perkadaran asal imej.

Penyelesaian:

  1. Tentukan saiz maksimum: Tentukan dimensi maksimum untuk imej yang diubah saiz.
  2. Kira ubah saiz nisbah: Kira nisbah dengan mengambil minimum (lebar maksimum/lebar asal) dan (tinggi maksimum/tinggi asal).
  3. Tentukan saiz yang betul: Darab saiz asal imej dengan nisbah yang dikira untuk mendapatkan dimensi yang sesuai untuk mengubah saiz.

Untuk kesederhanaan, PIL menyediakan kaedah Image.thumbnail untuk mengendalikan saiz semula sambil mengekalkan nisbah bidang:

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}'")
Salin selepas log masuk

Dalam skrip ini, imej diubah saiz kepada saiz lakaran kecil (128, 128) menggunakan pensampelan semula Lanczos untuk kualiti imej yang dipertingkatkan .

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan