파이썬에서 이미지 처리하고 핸들링하기 위해서는 파이썬에서 제공하는 패키지를 설치해야 한다.
이런 이미지 처리와 핸들링을 위한 외부 패키지로는 Pillow, OpenCV, PIL와 같은 패키가 있다.
여기서 PIL 계열로 계승된 패키지로 Pillow라는 유용한 패키지가 있어 소개한다.
설치 방법:
pip install Pillow
Pillow 이미징 라이브러리 특징:
1. 여러 이미지 파일의 포맷을 지원
2. 이미지 내부 데이터 접근 가능
3. 다양한 이미지 처리 기능 제공
Pillow으로 어떤 일들을 수 있나?
썸네일(Thumbnail) 이미지 만들기, 다른 이미지의 포맷으로 변환, 이미지 변형(크기, 회전, 필터링 등)과 같은 프로세싱 작업
1. 이미지 열기, 출력, 저장 예제
from PIL import Image
# 이미지 열기
im = Image.open('1.jpg')
# 이미지 크기 출력
print(im.size)
# Thumbnail 이미지 생성
size = (960, 480)
im.thumbnail(size)
# 이미지 png로 저장
im.save('1_1.png')
2. 이미지 부분적으로 자르기
crop() 함수를 사용하면 이미지 자르기(Cropping)가 가능하다.
자를 위치를 옵션으로 주어 원하는 위치 (상, 하, 좌, 우)로 잘라 저장할 수 있다.
from PIL import Image
im = Image.open('1.png')
cropImage = im.crop((50, 50, 100, 100))
cropImage.save('crop.jpg')
3. 이미지 회전 / Resize
rotate 함수로 이미지의 방향을 회전시킬 수 있다.
또한 resize함수로 이미지의 크기를 확대/축소도 가능하다.
from PIL import Image
im = Image.open('1_1.png')
# 이미지 크기 출력
print(im.size)
img2 = im.resize((480, 240))
img2.save('python_size-480_240.jpg')
# 90도 회전
img3 = im.rotate(90)
img3.save('python-rotate_90.jpg')
Tip: 다음의 에러 발생 시 아래의 코드 추가한다.
OSError: cannot write mode RGBA as JPEG
# OSError: cannot write mode RGBA as JPEG
if im.mode in ("RGBA", "P"):
im = im.convert("RGB")
4. 이미지 필터링
Pillow 패키지는 기본적인 몇 가지의 이미지 필터들을 제공한다.
ImageFilter 모듈을 import로 지정한 후 사용 가능하다.
아래 예제는 BLUR 필터를 사용하는 예제이다.
이미지의 테두리 윤곽만 표시하려면 ImageFilter.CONTOUR 옵션을 사용하면 된다.
from PIL import Image, ImageFilter
im = Image.open('1.png')
blurImage = im.filter(ImageFilter.BLUR)
blurImage.save('python-blur.png')
이 블로그의 다른 포스팅 읽기
'Integration & Python' 카테고리의 다른 글
파이썬 파일 복사하기 (0) | 2021.03.11 |
---|---|
파이썬 (Python) 스토리 (0) | 2021.02.25 |
파이심플GUI(PySimpleGUI) 예 (0) | 2021.02.23 |
Python으로 MS WORD 문서 작성하는 방법 (0) | 2021.02.09 |
파이썬 셀레니움 이미지 크롤링 예제 (0) | 2021.02.08 |
댓글