본문 바로가기
Programming/Python

[Python] 파이썬 사진 사이즈 변경 (resize)

by 코딩하는 금융인 2022. 12. 15.

안녕하세요.

파이썬 PIL(Pillow) 모듈을 활용하여 사진 사이즈를 변경하는 방법에 대해 알아보겠습니다.

 

 파이썬 사진 사이즈 변경하기

▣ PIL resize 함수

--모듈 import하기
from PIL import image

- 사진.resize((width: 너비, height: 높이), Filters*), *default: NEAREST

 

: Filters(품질) 종류

- 오른쪽(→)으로 갈수록 품질은 높으나 처리시간은 길어짐.

NEAREST BOX BILINEAR HAMMING BICUBIC LANCZOS

 

▣ resize 함수로 사진 사이즈 변경하기

: Sample이 한 개일 때

from PIL import Image
import os

img = Image.open("C:/Users/코딩하는 금융인/Desktop/배경화면/2727409-200.png")
img_resize = img.resize((256, 256))

# 사진 사이즈 확인
print(img_resize.size)
# 결과: (256, 256)

# 사이즈 변경된 사진 저장
img_resize.save("C:/Users/코딩하는 금융인/Desktop/배경화면/2727409-200_resize.png")
os.path.isfile("C:/Users/코딩하는 금융인/Desktop/배경화면/2727409-200_resize.png")
# 결과: True

 

: Sample이 여러 개일 때

- jpg 형식의 파일 리스트를 가져올 때 glob 모듈 활용함.

- 저장되는 파일 경로는 os 모듈의 splitext 함수 활용하여 title: 경로가 포함된 파일이름, ext: 파일형식으로 구성하여 저장함.

# jpg 파일 리스트
import glob

input_path = "C:/Users/코딩하는 금융인/Desktop/배경화면/*.jpg"
file_list = [file for file in glob.glob(input_path)]

# jpg 파일 리스트 사이즈 변경
img_resize_list = []
for f in file_list:
    img = Image.open(f)
    img_resize = img.resize((int(img.width/2), int(img.height/2)))
    img_resize_list.append(img_resize.size)
    # 사이즈 변경 사진 저장하기
    title, ext = os.path.splitext(f)
    img_resize.save(title + '_resize' + ext)

print(img_resize_list)
'''
결과 : [(511, 341), (250, 180), (325, 215), (960, 640), 
(455, 346), (390, 221), (455, 455), (158, 79), (137, 91), (137, 91), 
(153, 82), (960, 540), (960, 540), (960, 540), (960, 540), (960, 540), (960, 640)]
'''
반응형

댓글