728x90
이번에는 Python Imaging Library인 Pillow 라는 라이브러리로 이미지를 처리하는 예제를 진행하겠습니다.
1. Pillow 설치
pip install Pillow
2. 이미지 그레이스케일 변환 및 회전
from PIL import Image, ImageFilter
# 이미지를 불러옵니다.
im = Image.open('data/src/lenna_square.png')
# 형식, 크기(너비, 높이), 모드 등의 메타 정보를 가져옵니다.
# PNG (512, 512) RGB
print(im.format, im.size, im.mode)
#RGB 각 색상의 최소값과 최대값을 구합니다.
# ((54, 255), (3, 248), (8, 225))
print(im.getextrema())
# 지정된 좌표의 픽셀 값을 가져옵니다. 좌표 원점은 (0, 0)왼쪽 위입니다.
# (180, 65, 72)
print(im.getpixel((256, 256)))
# 그레이스케일 변환( convert('L')), 90도 회전( rotate(90)), 가우시안 블러( filter()) 처리가 수행됩니다.
new_im = im.convert('L').rotate(90).filter(ImageFilter.GaussianBlur())
# 이미지를 표시합니다.
new_im.show()
# 처리된 이미지를 저장합니다.
new_im.save('data/dst/lenna_square_pillow.jpg', quality=95)
- 결과
3. 도형 및 글자 표시
from PIL import Image, ImageDraw, ImageFont
im = Image.new("RGB", (512, 512), (128, 128, 128))
# Image객체를 인수로 지정 하고 Draw객체를 생성합니다.
draw = ImageDraw.Draw(im)
# 직선, 직사각형, 타원을 그립니다
draw.line((0, im.height, im.width, 0), fill=(255, 0, 0), width=8)
draw.rectangle((100, 100, 200, 200), fill=(0, 255, 0))
draw.ellipse((250, 300, 450, 400), fill=(0, 0, 255))
# 저장된 폰트를 불러와서 텍스트를 그립니다.
font = ImageFont.truetype('/Library/Fonts/Arial Bold.ttf', 48)
draw.multiline_text((0, 0), 'Pillow sample', fill=(0, 0, 0), font=font)
- 결과
'Python' 카테고리의 다른 글
[Python] 실시간 비트코인 거래 데이터를 MariaDB에 저장하기 (0) | 2024.02.05 |
---|---|
[Python] 업비트 API로 실시간 비트코인 거래 데이터 수신하기 (0) | 2024.01.27 |
[Python] huggingface API로 AI 이미지생성 및 저장하기 (0) | 2023.09.15 |
[Python] 구글 speech to text api를 사용해 긴 텍스트를 오디오 파일로 변환하고 웹 브라우저에서 재생하기 (0) | 2023.08.25 |
[Python] Flask 를 이용해 웹 서버 실행시키기 (0) | 2023.08.24 |