Appia의 IT세상

파이썬[Python, Pillow] 사진 사이즈를 특정 사이즈에 맞게 자동으로 크기 변경하기 본문

Python/Python 응용

파이썬[Python, Pillow] 사진 사이즈를 특정 사이즈에 맞게 자동으로 크기 변경하기

Appia 2021. 2. 23. 06:59
반응형

파이썬[Python, Pillow] 사진 사이즈를 특정 사이즈에 맞게 자동으로 크기 변경하기

파이썬[Python, Pillow] 사진 사이즈를 특정 사이즈에 맞게 자동으로 크기 변경하기

이전 포스팅에서는 특정 폴더에 있는 사진들을 한번에 크기를 변경하는 방법에 대해서 살펴봤습니다. 이번 포스팅에서는 크기의 상관없이 특정 사이즈에 맞춰서 자동으로 크기를 변경해주는 방법에 대해서 살펴보고자 합니다. 

 

일단, 관련해서 다음과 같은 순서로 작업을 진행하고자 합니다. 

1. 원하는 사이즈를 입력

2. 관련 사진의 크기중 큰 부분이 무엇인지 파악하고 파악

3. 원하는 사이즈를 좌우 중 큰 사이즈로 나누어 원하는 변경 비율 획득

4. 3번에서 얻은 비율을 바탕으로 각 좌우 사이즈를 곱하여 크기 변경 

 

그럼 코드를 살펴보겠습니다. 

from PIL import Image
import os.path

targerdir = r"D:\여행\20210213_충주\충주호"

files = os.listdir(targerdir)
wantedSize = 1000	#원하는 사이즈 입력 
format = [".jpg",".png",".jpeg","bmp",".JPG",".PNG","JPEG","BMP"]
for (path,dirs,files) in os.walk(targerdir):
    for file in files:
         if file.endswith(tuple(format)):
             image = Image.open(path+"\\"+file)
             print(image.filename)
             print(image.size)
			
            # 좌우 크기 중 큰 부분 획득
             if image.size[0] > image.size[1]:
                 tempsize =image.size[0]

             else:
                 tempsize =image.size[1]
			
            # 변경할 비율 획득
             percent = wantedSize/tempsize
             
            # 획득한 비율 출력
             print(percent)	
			
            # 획득한 비율을 토대로 이미지 크기 변경 
             image=image.resize((int(image.size[0]*percent), int(image.size[1]*percent)))
             image.save(path+"\\a"+file)
             print(image.size)

         else:
             print(path)
             print("InValid",file)

이 부분에 대한 코드를 실행하면 다음과 같은 결과가 나타납니다. 

D:\여행\20210213_충주\충주호\DSCF0796.JPG
(4896, 3264)
0.2042483660130719
(1000, 666)
D:\여행\20210213_충주\충주호\DSCF0800.JPG
(4896, 3264)
0.2042483660130719
(1000, 666)
...
D:\여행\20210213_충주\충주호\DSCF0838.JPG
(4896, 3264)
0.2042483660130719
(1000, 666)

 

이와 같은 방식으로 이미지의 크기를 변경할 수 있습니다. 비율을 구해서 이미지를 변경하는 이유는 좌우의 불균형으로 인하여 이미지가 깨지는 것을 방지하기 위함입니다. 생각보다는 간단하지만, 때로는 생각을 놓치기 쉬운 부분이라 다음과 같이 포스팅을 해봤습니다. 

파이썬[Python, Pillow] 특정 폴더에 있는 사진들 한번에 사이즈 특정 비율로 변경하기

이번 포스팅에서는 파이썬[Python, Pillow] 사진 사이즈를 특정 사이즈에 맞게 자동으로 크기 변경하기라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 밤여록에 글 남겨주시길 바랍니다. 

반응형
Comments