Python Imaging Library (PIL)는 파이썬 프로그래밍 언어용 이미지 처리 라이브러리이다. 1995년~1999년 사이에 Fredrik Lundh와 Python Software Foundation이 주도하여 초기 버전을 개발했으며, 2009년까지 공식적으로 유지·보수되었다. 이후 개발이 중단된 뒤, 2011년에 포크된 Pillow가 사실상의 후속 프로젝트로 자리잡아 현재도 활발히 업데이트되고 있다.
주요 특징
| 구분 | 내용 |
|---|---|
| 지원 포맷 | BMP, EPS, GIF, IM, JPEG, JPEG 2000, MSP, PCX, PNG, PPM, SGI, TGA, TIFF, WebP 등 다수의 래스터 이미지 포맷을 읽고 쓸 수 있다. |
| 핵심 기능 | 이미지 열기·저장, 크기 변환·회전·자르기·필터 적용, 색공간 변환(RGB↔YCbCr 등), 알파 채널 처리, 텍스트 삽입, 드로잉(선·도형·점) 등 |
| API 구조 | Image 클래스를 중심으로 ImageDraw, ImageFont, ImageFilter, ImageChops 등 보조 모듈이 제공된다. |
| 확장성 | C로 구현된 핵심 모듈(_imaging)과 파이썬 레이어가 결합돼 성능을 확보하면서도 파이썬스러운 인터페이스를 유지한다. |
| 호환성 | Python 2.7, 3.x (Pillow 6.0 이후부터는 Python 2.7 지원 종료)와 호환된다. |
| 라이선스 | 원본 PIL은 Historical Permission Notice and Disclaimer (HPND) 라이선스를 사용했으며, Pillow는 MIT 라이선스로 재배포된다. |
역사적 흐름
- 1995 ~ 1999 – Fredrik Lundh가 만든 초기 버전 배포.
- 2000 ~ 2008 – Python 2.x 시대에 표준 이미지 처리 도구로 널리 사용.
- 2009 – 공식 유지보수가 중단되고, GitHub에 코드가 아카이브됨.
- 2011 – Pillow 프로젝트가 PIL을 포크하여 활성 개발을 재개. 현재 Pillow가 사실상 PIL의 최신 구현체로 인정받는다.
사용 예시 (Pillow 기반)
from PIL import Image, ImageFilter
# 이미지 열기
img = Image.open('example.jpg')
# 회전 및 블러 필터 적용
rotated = img.rotate(45)
blurred = rotated.filter(ImageFilter.GaussianBlur(radius=2))
# 저장
blurred.save('result.png')
위 코드는 Pillow가 제공하는 PIL 네임스페이스를 그대로 사용한다는 점에서 기존 PIL 코드와 호환성을 유지한다.
현재 상황
- 공식적인 PIL 패키지는 PyPI에 존재하지 않으며, 최신 파이썬 환경에서는
pip install pillow를 통해 Pillow를 설치하는 것이 일반적이다. - 문서와 대부분의 튜토리얼은 Pillow를 기준으로 작성되지만,
import PIL구문은 여전히 유효하도록 설계되어 있다.
참고 문헌
- Python Imaging Library (PIL) 공식 문서 (아카이브)
- Pillow 프로젝트 GitHub 페이지 – https://github.com/python-pillow/Pillow
- "Python Imaging Library – The PIL Handbook" (Fredrik Lundh, 1999)
요약: Python Imaging Library는 파이썬 환경에서 이미지 파일을 다루기 위한 초기 라이브러리이며, 현재는 Pillow가 그 기능을 계승·확장하고 있다.