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() # 새창으로 미리보기


반응형
'Programming > Python' 카테고리의 다른 글
| [혼만파] 4주차_혼자 만들면서 공부하는 파이썬 (5) | 2025.08.25 |
|---|---|
| [혼만파] 3주차_혼자 만들면서 공부하는 파이썬 (2) | 2025.07.18 |
| [혼만파] 1주차_혼자 만들면서 공부하는 파이썬 (1) | 2025.07.18 |
| [Python] 파이썬 설치하기 (0) | 2017.04.03 |
| [Python] 파이썬이란 (0) | 2017.03.24 |
댓글