본문 바로가기
Programming/Python

[혼만파] 2주차_혼자 만들면서 공부하는 파이썬

by 호호호호히히히히 2025. 7. 18.
728x90
반응형

 

2주차

 

1주차를 거나하게 건너뛰고 7/18에 제출..

2주차도 7/18에 제출하고있는 모습...

반성해봅니다. 3주차는 7/20 전에 꼭 낼 것입니다. 정말루.

 

실행하다가 이런 에러가 난다면 pillow 라이브러리가 없다는 것이니

ModuleNotFoundError: No module named 'PIL'

 

 

pip install pillow

명령어로 설치합니다.

Chapter.03 이미지 가공 (크기 변경, 합성)하기

 

이미지 경로를 생성하고

from pathlib import Path

WORK_DIR = Path(__file__).parent

# img, input, output 하위 폴더 경로를 만듭니다.
IMG_DIR = WORK_DIR / "img"      # 이미지 파일
IN_DIR = WORK_DIR / "input"     # 입력 데이터
OUT_DIR = WORK_DIR / "output"   # 출력 데이터

if __name__ == "__main__":
	# 폴더가 없으면 생성 (이미 있으면 무시)
    IMG_DIR.mkdir(exist_ok=True)
    IN_DIR.mkdir(exist_ok=True)
    OUT_DIR.mkdir(exist_ok=True)

 

디렉토리 생성 확인

 

 

# Pillow 라이브러리에서 Image 모듈을 임포트 
#에러 나는 경우 위를 참고하여 pillow 다시 설치
from PIL import Image

from step_1_1 import IMG_DIR  # 이전에 작성한 모듈에서 이미지 폴더 경로를 불러옴

# IMG_DIR 폴더 안의 "img_001.jpg" 파일을 열어서 img 객체 생성
img = Image.open(IMG_DIR / "img_001.jpg")
print(f"{img.size=}, {img.format=}, {img.mode=}")  # 원본 이미지의 사이즈, 포맷, 모드 출력

# 원하는 리사이즈 크기 지정
SIZE = (500, 500)

# 이미지 크기를 지정한 SIZE로 강제 변환(비율 무시)
# img.resize는 강제로 크기를 맞추기 때문에 비율이 깨질 수 있음.
img_resize = img.resize(SIZE)
# 리사이즈된 이미지의 크기 출력
print(f"{img_resize.size=}")
img_resize.show()  # 새창으로 미리보기

# Pillow의 이미지 처리 유틸리티 모듈 임포트
from PIL import ImageOps

# 이미지 크기를 비율을 유지하며 SIZE에 맞게 조정(여백이 생길 수 있음)
img_cont = ImageOps.contain(img, SIZE)
print(f"{img_cont.size = }")  # contain 결과 이미지의 크기 출력
img_cont.show()  # 새창으로 미리보기

반응형

댓글