2018~/Python Skill Up
8. pillow : 이미지 패키지(1) - info, crop, thumbnail, resize
반원_SemiCircle
2019. 9. 6. 10:27
개요
이미지 처리를 도와주는 패키지 pillow를 사용하여, 이미지의 크기 조작, 자르기, 추출등을 해본다. 또한 현재 화면을 캡처하는 등의 기능도 수행할 수 있다.
레퍼런스 문서
설치
pip3 install pillow
관련 패키지와 모듈
- pyautugui
- os
사전배경
기존 PIL이라고 하는 이미지 처리 프로젝트가 완성도가 높아 마무리되었는데, 이후 문제가 발생했다. python2에서는 문제가 없었으나 이후 버전업되며 출시되는 python3에 지원은 이루어지지 않았기 때문이다.
이후로 등장한게 pillow이며, 위 이유탓인지 특이하게 pillow 패키지를 설치하는데 코드에서는 PIL을 참조한다.
핵심 클래스
- Image : pillow
핵심 함수
- crop
- resize
- thumbnail
기본 예제 - 이미지 정보 조회
from PIL import Image
img = Image.open('./images/01.jpg') #PIL로 가공가능한 형태로 이미지 로드
#현재 img 사진 확인하기(원본을 여는게 아님)
img.show()
#사진 정보 확인
print(img.size) #(너비, 높이)
print(img.width) #너비만
print(img.height) #높이만
print(img.filename)
print(img.mode)
print(img.info)
img.close()
기본 예제 - resize
from PIL import Image
img = Image.open('./images/01.jpg') #PIL로 가공가능한 형태로 이미지 로드
#크기 조정
resize_img = img.resize((100,100)) #(width, height)
resize_img.save('./resize/01.jpg')
img.close()
기본 예제 - thumbnail
from PIL import Image
img = Image.open('./images/01.jpg') #PIL로 가공가능한 형태로 이미지 로드
#크기 조정
img.thumbnail((100, 100)) #(width,height)
img.save('./thumbnail/01.jpg')
img.close()
기본 예제 - crop
from PIL import Image
img = Image.open('./images/01.jpg') #PIL로 가공가능한 형태로 이미지 로드
#크기 조정
resize_img = img.crop((10, 10, 300, 300)) #(left, upper, right, lower)
resize_img.save('./crop/01.jpg')
img.close()
응용 - for문을 이용한 resize
from PIL import Image
import os
#파일 명 전부 로드
img_list = os.listdir('./images/')
print("파일명 : ", img_list)
for img_name in img_list:
img = Image.open('./images/'+img_name) #PIL로 가공가능한 형태로 이미지 로드
#크기 조정
resize_img = img.resize((100,100))
resize_img.save('./resize/'+img_name)
img.close()