ChatGPT와 파이썬으로 이미지 크기 일괄 변경하기
🗂 목차
- 🔹 이미지 크기 변경이란?
- 🔹 개발 환경 설정
- 🔹 Step-by-Step 코딩
- 🔹 전체 코드
- 🔹 실행 방법 & 결과
- 🔹 초보자 FAQ
1. 이미지 크기 변경이란?
→ 사진이나 그림 파일의 크기를 줄이면 저장 공간을 절약하고, 웹사이트 로딩 속도를 빠르게 할 수 있어요.
🔹 실생활에서 활용 예시
- ✅ 블로그나 웹사이트에 올릴 사진 크기 줄이기
- ✅ 이메일 첨부용으로 이미지 용량 줄이기
- ✅ 스마트폰 배경화면 크기 조정
2. 개발 환경 설정 ⚙️
→ Python과 필요한 라이브러리를 설치해야 해요.
→ 필요한 라이브러리 설치
pip install pillow
* 저는 이미 설치가 되서 메시지는 다르겠지만, cmd 창을 열고 직접 명령어를 입력해 보세요!
3. Step-by-Step 파이썬 코딩
1️⃣ 라이브러리 불러오기
from PIL import Image
import os
→ 손을 멈추지 말고 입력하러 가봅니다~
2️⃣ 폴더 내 모든 이미지 파일 불러오기
image_folder = "images"
save_folder = "resized"
if not os.path.exists(save_folder):
os.makedirs(save_folder)
files = [f for f in os.listdir(image_folder) if f.endswith(('png', 'jpg', 'jpeg'))]
⚠ 위 코드에서 이미지 폴더(images)와 저장 폴더(resized)를 찾지 못해서 오류가 발생
→ 절대경로 수정(예: d:/py/images)
✔ resized 폴더는 같은 이름이 존재하는지 확인해서 생성(os.makedirs(save_folder))을 해주니 미리 만들지 않으셔도 되요.
✔ 경로가 안맞거나 경로에서 "\" 입력시 오류가 발생하기도 하니 "/" 요렇게 바꿔서 입력하시면 해결되요.
→ 저는 이렇게 해결했어요.
* 실행을 하면 위에 경로에 'resized' 폴더가 생성되는걸 확인 할 수 있어요.
3️⃣ 이미지 크기 변경 및 저장
new_size = (300, 300)
for file in files:
img = Image.open(os.path.join(image_folder, file))
img_resized = img.resize(new_size)
img_resized.save(os.path.join(save_folder, file))
→ 사이즈를 변경하는 코드를 입력해 봤어요.
✔ 저는 실행을 해도 별다른 결과는 없었는데, 생각해보니 images 폴더에 이미지가 없었네요.🤣
다시 실행해보니 이미지가 변환되서 resized 폴더에 생겼습니다.
4. Python 전체 코드 📜
from PIL import Image
import os
# 폴더 설정
image_folder = "images"
save_folder = "resized"
if not os.path.exists(save_folder):
os.makedirs(save_folder)
# 파일 목록 가져오기
files = [f for f in os.listdir(image_folder) if f.endswith(('png', 'jpg', 'jpeg'))]
# 이미지 크기 변경
new_size = (300, 300)
for file in files:
img = Image.open(os.path.join(image_folder, file))
img_resized = img.resize(new_size)
img_resized.save(os.path.join(save_folder, file))
print("이미지 크기 변경 완료!")
→ 이미지 파일 여러개를 넣고도 테스트 해봅니다.
전 이미지 파일 확장자가 *.webp 있는지 모르고 해서 왜 안되나 했어요.
확장자가 다른 이미지 파일이 있는 경우는 아래 코드 12번 행에 파일 확장자를 추가하면 되세요~
5. 실행 방법 & 결과
- images 폴더에 사진을 넣어주세요.
- Python 파일을 실행하면 resized 폴더에 변경된 사진이 저장됩니다.
6. 초보자 FAQ ❓
Q1. 이미지 폴더가 없으면 어떻게 하나요?
→ images
폴더를 만들어 주세요.
Q2. 크기를 다르게 변경하려면?
→ new_size = (가로, 세로)
값을 변경하세요.
Q3. 다른 확장자도 가능할까요?
→ 현재는 JPG, PNG, JPEG만 지원합니다. GIF를 추가하려면 코드에서 if f.endswith(('png', 'jpg', 'jpeg', 'gif'))
로 수정하세요.
7. 맺음말 & 발전 과제
오늘은 이미지 크기 일괄 변경 프로그램을 만들어 보았습니다!
이젠 좀 익숙해지셨나요? 어렵고 생각처럼 안되는 부분은 AI를 활용해 보세요! 신세계~😆
💡 발전 과제
- ⚠ 다른 확장자(GIF, BMP 등)도 지원하도록 개선하기
- ⚠ GUI를 추가하여 버튼으로 조작할 수 있게 만들기
- ⚠ 파일 선택 기능 추가하기