1.Pillow 패키지란 무엇인가요?
안녕하세요.
이번 글에서는 Pillow라는 파이썬 패키지에 대해서 소개해드리려고 합니다.
1. Pillow 패키지란?
Pillow 패키지를 설명하기 전에 PIL 패키지에 대해 간단히 설명하겠습니다.
PIL는 Python Imaging Libarary의 약자로, 파이썬으로 이미지를 다룰 때 유용한 기능들을 제공하는 라이브러리 였습니다.
"PIL is the Python Imaging Library by Fredrik Lundh and Contributors."
파이썬에서 setuptools이란 python 라이브러리 를 확장 및 배포하는데 사용되는 extension libarary인데, 이러한 setuptools을 이용하여 프로젝트 빌드, 배포를 쉽게 관리할 수 있게 도와줍니다. 하지만, PIL는 "not setuptools compatible" 하다고 알려져 있었기 때문에 이를 개선하고자 PIL를 fork하여 Pillow라는 프로젝트를 실행하게 됩니다. (파이썬에 이미지를 다루는 또 다른 패키지로는 openCV가 있습니다)
(↓↓↓Pillow 공식 사이트↓↓↓)
https://pillow.readthedocs.io/en/stable/
2. Pillow 패키지 설치하는 방식은?
Pillow 패키지를 설치하기 전에 알아두어야 할 사항들을 정리해보겠습니다.
2-1. PIL 설치 여부 확인
Pillow를 설치하는 방법을 알려주는 사이트에 접속하면 아래와 같은 주의사항을 알려줍니다.
"Pillow and PIL cannot co-exist in the same environment. Before installing Pillow, please uninstall PIL."
즉, Pillow를 설치하기 전에 PIL가 있으면, PIL를 uninstall 해주어야 합니다.
(↓↓↓Pillow 설치 방식↓↓↓)
https://pillow.readthedocs.io/en/stable/installation.html#warnings
2-2. Python 버전 확인
지금까지 Pillow 패키지는 여러 업데이트를 통해 다양한 버전이 release 되었습니다.
Python 패키지도 마찬가지로 다양한 버전이 있죠.
그래서, Pillow 패키지를 설치 할 시, 파이썬 버전과 Pillow 패키지 간의 호환성을 고려해야 합니다.
(예를 들어, Pillow 7.0 버전을 만들 때는 python 3.5 버전의 기능 중 python 3.4에서 추가된 기능등을 이용했다고 하면, 당연히 python 3.4 버전에서는 호환이 안되겠죠?)
2-3. OS (Operating System) 확인
사실 패키지를 설치하기 위해서 OS까지 확인하는 경우는 없지만, 만일의 경우에 대비해서 Pillow 개발자들이 테스트한 환경에 맞게 세팅해준다면 더 안전할 수 있겠죠?
아래와 같은 표를 보면 OS 마다 Pillow를 어떤 python 버전에서 테스트 했는지 나와있습니다.
Supporting해주는 python 버전이 있으니, python 버전에 맞는 Pillow 패키지 버전을 설치해주면 되겠죠?
(Tested architecture 부분은 CPU 모델과 관련된 설명인데, 자세한 부분은 아래 글을 참고해주세요)
https://89douner.tistory.com/151
2-5. Pillow 패키지 설치
아래와 같은 명령어를 사용하시면 Pillow 패키지가 설치 됩니다.
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
하지만, 아나콘다 가상환경을 이용하시는 분은 Pillow 패키지 설치 시, 아래의 글을 참고해주세요!
("ctrl+F" 누른 후, "pillow" 검색)
https://89douner.tistory.com/73
3. Pillow 모듈
Pillow 패키지에는 굉장히 다양힌 모듈들이 있습니다.
어떠한 이미지 관련 기능을 제공해주는지에 따라서 모듈의 종류가 결정됩니다.
(↓↓↓Pillow 모듈들 reference↓↓↓)
https://pillow.readthedocs.io/en/stable/reference/index.html
※참고로 파이썬에서 모듈이란 "함수나 변수 또는 클래스를 모아 놓은 파일"을 지칭합니다.
(↓↓↓모듈에 대한 설명↓↓↓)
그렇다면, Pillow 패키지 중 가장 기본이 되는 Image 모듈에는 어떤 기능이 있을까요?
이러한 모듈을 어떻게 사용할 수 있을까요?
다음 글에서 알아보도록 하겠습니다!