Pillow

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.12.18
조회수
9
버전
v1

Pillow

Pillow는 파이썬에서 이미지 처리를 위한 대표적인 라이브러리로, Python Imaging Library(PIL)의 유지 및 확장 버전입니다. 원래 PIL은 1990년대 후반에 개발되었으나 더 이상 유지 관리되지 않게 되었고, 이를 계승하여 활발히 개발되고 있는 오픈소스 프로젝트가 바로 Pillow입니다. 현재 많은 파이썬 기반 애플리케이션에서 이미지 로딩, 변환, 필터링, 저장 등의 작업에 널리 사용되고 있습니다.


개요

Pillow는 다양한 이미지 파일 형식을 지원하며, 간단한 이미지 조작부터 고급 이미지 처리까지 다양한 기능을 제공합니다. 웹 애플리케이션, 데이터 과학, 머신러닝 전처리, 자동화 스크립트 등에서 이미지 처리가 필요한 경우 자주 활용됩니다. 특히 NumPy와의 호환성 덕분에 딥러닝 프레임워크(예: TensorFlow, PyTorch)와의 통합도 용이합니다.

공식 GitHub 저장소와 문서는 활발히 업데이트되며, 파이썬 3.7 이상을 공식적으로 지원합니다.


주요 기능

이미지 파일 형식 지원

Pillow는 다음과 같은 주요 이미지 포맷을 읽고 쓸 수 있습니다:

참고: WebP와 같은 일부 포맷은 추가적인 디코더 라이브러리가 필요할 수 있습니다.

기본 이미지 조작

Pillow를 사용하면 다음과 같은 조작이 가능합니다:

예시 코드:

from PIL import Image

# 이미지 열기
img = Image.open("example.jpg")

# 회전 및 리사이징
rotated = img.rotate(45)
resized = img.resize((800, 600))

# 그레이스케일 변환
gray_img = img.convert("L")

# 저장
resized.save("resized_example.jpg")

필터 및 이펙트 적용

Pillow는 [ImageFilter](/doc/%EA%B8%B0%EC%88%A0/%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%B2%98%EB%A6%AC/%ED%95%84%ED%84%B0%20%EB%B0%8F%20%EC%9D%B4%ED%8E%99%ED%8A%B8/ImageFilter) 모듈을 통해 다양한 필터를 제공합니다:

  • [BLUR](/doc/%EA%B8%B0%EC%88%A0/%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%B2%98%EB%A6%AC/%ED%95%84%ED%84%B0%20%EB%B0%8F%20%EC%9D%B4%ED%8E%99%ED%8A%B8/BLUR): 흐림 효과
  • [CONTOUR](/doc/%EA%B8%B0%EC%88%A0/%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%B2%98%EB%A6%AC/%ED%95%84%ED%84%B0%20%EB%B0%8F%20%EC%9D%B4%ED%8E%99%ED%8A%B8/CONTOUR): 윤곽선 강조
  • [SHARPEN](/doc/%EA%B8%B0%EC%88%A0/%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%B2%98%EB%A6%AC/%ED%95%84%ED%84%B0%20%EB%B0%8F%20%EC%9D%B4%ED%8E%99%ED%8A%B8/SHARPEN): 선명도 강화
  • [EMBOSS](/doc/%EA%B8%B0%EC%88%A0/%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%B2%98%EB%A6%AC/%ED%95%84%ED%84%B0%20%EB%B0%8F%20%EC%9D%B4%ED%8E%99%ED%8A%B8/EMBOSS): 엠보싱 효과

from PIL import Image, ImageFilter

img = Image.open("example.jpg")
blurred = img.filter(ImageFilter.BLUR)
blurred.save("blurred.jpg")


고급 기능

텍스트와 도형 삽입

[ImageDraw](/doc/%EA%B8%B0%EC%88%A0/%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%B2%98%EB%A6%AC/%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%A1%B0%EC%9E%91/ImageDraw) 모듈을 사용하면 이미지 위에 텍스트, 선, 사각형, 원 등을 그릴 수 있습니다.

from PIL import Image, ImageDraw, ImageFont

img = Image.new("RGB", (400, 200), color="white")
draw = ImageDraw.Draw(img)

# 텍스트 삽입
draw.text((50, 50), "Hello, Pillow!", fill="black")

# 사각형 그리기
draw.rectangle([(100, 100), (200, 150)], outline="red", width=3)

img.save("drawn_image.png")

NumPy 연동

이미지를 NumPy 배열로 변환하면, OpenCV나 머신러닝 모델과의 연동이 쉬워집니다.

import numpy as np
from PIL import Image

img = Image.open("example.jpg")
np_array = np.array(img)  # RGB 배열로 변환
print(np_array.shape)  # (높이, 너비, 채널)

반대로 NumPy 배열을 다시 이미지로 변환도 가능합니다:

new_img = Image.fromarray(np_array)
new_img.save("from_array.png")


설치 및 환경 설정

Pillow는 [pip](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/%ED%8C%A8%ED%82%A4%EC%A7%80%20%EA%B4%80%EB%A6%AC/pip)를 통해 쉽게 설치할 수 있습니다:

pip install Pillow

가상 환경 사용을 권장합니다:

python -m venv pillow_env
source pillow_env/bin/activate  # Linux/macOS
# 또는
pillow_env\Scripts\activate     # Windows
pip install Pillow


주의사항 및 한계


관련 도구 및 라이브러리

도구 설명
OpenCV (cv2) 실시간 컴퓨터 비전에 최적화된 라이브러리. Pillow보다 성능이 뛰어나며, 고급 기능이 풍부함
scikit-image 과학적 이미지 분석에 특화된 라이브러리. Pillow보다 분석 기능이 강력함
matplotlib 이미지 시각화에 자주 사용되며, Pillow로 로드한 이미지를 쉽게 표시 가능

참고 자료

Pillow는 접근성이 뛰어나고 문서가 잘 정비되어 있어, 이미지 처리를 처음 시작하는 파이썬 사용자에게 이상적인 선택입니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?