Python Pillow rectangle 이용 방법

Python Pillow rectangle 이용 방법을 살펴보도록 하겠습니다. rectangle outline 그리고 width의 이용 방법도 차례로 살펴보겠습니다.

Python Pillow 새로운 이미지 생성

우선 픽셀 단위로 120 x 90 크기의 노란 이미지를 생성하도록 하겠습니다. RGB 값은 각각 253, 217, 62입니다. Image.new() 메서드를 이용하면 이미지를 생성하면서 해당 이미지의 색상을 지정할 수 있습니다.

from PIL import Image

img = Image.new("RGB", size=(120, 90), color=(253, 217, 62))
img.save(f'test.png')
Python

위의 코드로 생성된 이미지는 아래와 같습니다.

그림 1. Python Pillow 새로운 이미지 생성과 색상 지정 결과
그림 1. Python Pillow 새로운 이미지 생성과 색상 지정 결과

Python Pillow rectangle 색칠 방법

Pillow에서 그리기를 이용할 때에는 ImageDraw 모듈을 활용하면 됩니다.

특정 영역 색칠 방법(rectangle)

앞서 사용한 이미지를 불러와서 20, 20부터 100, 70까지의 공간을 빨간색(#ff0000)으로 채워보도록 하겠습니다.

from PIL import Image, ImageDraw

img = Image.open("test.png")
dat = img.load()

draw = ImageDraw.Draw(img)
draw.rectangle([(20, 20), (100, 70)], fill='#ff0000', outline=None)

img.save("output.png")
Python

저장된 output.png 파일을 열어보면 아래와 같이 해당 영역에 빨간색으로 채워져 있는 것을 확인할 수 있습니다.

그림 2. Python Pillow rectangle 색칠 방법(rectangle)
그림 2. Python Pillow rectangle 색칠 방법(rectangle)

외곽선 색칠 방법

외곽선을 그리고 싶다면 outline 파라미터에 외곽선에 사용할 색상 값을 전달해 주면 됩니다. 이번엔 외곽선을 짙은 회색(#333333)으로 색칠해 보도록 하겠습니다.

draw.rectangle([(20, 20), (100, 70)], fill='#ff0000', outline='#333333')
Python

저장된 이미지를 보면 1px 두께의 테두리가 그려진 것을 확인할 수 있습니다. 그렇다면 더 두꺼운 외곽선을 그리고 싶다면 어떻게 할 수 있을까요?

그림 3. Python Pillow rectangle outline 사용 방법
그림 3. Python Pillow rectangle outline 사용 방법

외곽선 두께 설정 방법

외곽선의 두께를 5px로 설정하기 위해서는 width 파라미터를 사용하면 됩니다. width 값은 정수값으로 지정해 주면 됩니다.

draw.rectangle([(20, 20), (100, 70)], fill='#ff0000', outline='#333333', width=5)
Python

두께를 5px로 설정하면 아래와 같이 5px 두께의 외곽선이 그려진 것을 확인할 수 있습니다.

그림 4. Python Pillow rectangle width 파라미터 사용법
그림 4. Python Pillow rectangle width 파라미터 사용 방법

Pillow 5.3.0 이상에서 rectangle을 이용한 그리기가 가능하다고 하니 버전이 낮은 경우에는 rectangle이 작동하지 않을 수 있음을 인지해 두기 바랍니다.

관련 자료

Pillow의 ImageDraw 모듈에 대한 공식문서를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment