>백엔드 개발 >파이썬 튜토리얼 >종횡비를 유지하면서 PIL을 사용하여 이미지 크기를 어떻게 조정할 수 있습니까?

종횡비를 유지하면서 PIL을 사용하여 이미지 크기를 어떻게 조정할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-13 17:23:10362검색

How Can I Resize Images with PIL While Maintaining Aspect Ratio?

종횡비를 유지하면서 PIL을 사용하여 이미지 크기 조정

PIL(Python Imaging Library)은 포괄적인 이미지 조작 기능 세트를 제공합니다. 유용한 작업 중 하나는 이미지 크기를 조정하는 것이지만 많은 개발자는 원래 종횡비를 유지하는 데 어려움을 겪습니다. 이 기사에서는 이 문제를 자세히 살펴보고 비례적인 이미지 크기 조정을 보장하는 솔루션을 제공합니다.

문제

사용자가 썸네일을 만들려고 시도하는 동안 다음 문제를 발견했습니다.

있습니까? 내가 놓친 확실한 방법이 있습니까? 썸네일을 만들려고 합니다.

해결책

가로세로 비율을 유지하면서 이미지 크기를 조정하려면 다음 단계를 고려하세요.

  1. 결정 최대 크기: 썸네일의 최대 너비와 높이를 설정하세요. 이 값은 원하는 출력 크기를 정의합니다.
  2. 크기 조정 비율 계산: 최대 너비를 원래 너비로, 최대 높이를 원래 높이로 나누어 크기 조정 비율을 계산합니다. 비율이 작을수록 비례적인 크기 조정이 보장됩니다.
  3. 새 크기 계산: 원래 크기에 계산된 크기 조정 비율을 곱하여 이미지의 새 크기를 결정합니다.
  4. PIL 라이브러리 방법: PIL은 Image.thumbnail 방법을 통해 단순화된 접근 방식을 제공합니다. 이 방법은 이미지를 직접 수정하므로 필요한 경우 사본을 만드는 것이 좋습니다.
import os, sys
from PIL import Image

size = 128, 128  # Define the maximum size of the thumbnail

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"  # Generate the output filename
    if infile != outfile:
        try:
            im = Image.open(infile)
            im_copy = im.copy()  # Create a copy to avoid modifying the original image
            im_copy.thumbnail(size, Image.Resampling.LANCZOS)  # Resize the image
            im_copy.save(outfile, "JPEG")  # Save the resized image
        except IOError:
            print(f"cannot create thumbnail for '{infile}'")  # Handle any exceptions

위 내용은 종횡비를 유지하면서 PIL을 사용하여 이미지 크기를 어떻게 조정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.