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

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

Susan Sarandon
Lepaskan: 2024-12-11 08:26:09
asal
789 orang telah melayarinya

How to Resize Images with PIL While Maintaining Aspect Ratio?

Mengubah Saiz Imej dengan PIL Sambil Memelihara Nisbah Aspek

Apabila mencipta lakaran kecil, adalah penting untuk mengekalkan nisbah aspek asal imej. Dalam artikel ini, kami akan meneroka cara untuk mencapai ini menggunakan Perpustakaan Pengimejan Python (PIL).

Pendekatan:

  1. Tentukan Saiz Maksimum : Tentukan lebar dan ketinggian maksimum yang diingini untuk anda lakaran kecil.
  2. Kira Nisbah Ubah Saiz: Kira nisbah penskalaan minimum dengan mencari nisbah yang lebih kecil daripada nisbah maxlebar/lebar dan maxheight/tinggi.
  3. Kira Saiz Baharu : Darab saiz asal dengan nisbah yang dikira untuk mendapatkan saiz yang sesuai untuk lakaran kenit.

Kaedah Alternatif menggunakan Pustaka PIL:

PIL menyediakan kaedah Image.thumbnail() yang direka khusus untuk tujuan ini. Ia mengambil saiz maksimum sebagai hujah dan melaraskan saiz imej secara automatik sambil mengekalkan nisbah bidang.

Berikut ialah contoh daripada dokumentasi PIL:

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
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Saiz Imej dengan PIL Sambil Mengekalkan Nisbah Aspek?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan