Python에서 Pillow 픽셀의 rgba 값을 알아내는 방법과 특정 픽셀의 값을 변경하는 방법을 살펴보도록 하겠습니다.
목차
Python Pillow 픽셀의 색상 확인 방법
우선 작업할 이미지는 20×20 크기의 a.png 파일이며 아래 그림 1과 같습니다.
Pillow를 사용해서 해당 이미지 파일을 열어서 (10, 10) 좌표에 있는 값을 읽어오도록 하겠습니다.
from PIL import Image
im = Image.open("a.png")
dat = im.load()
pixel = dat[10, 10]
print(pixel)
Python위와 같은 코드를 실행하면 아래와 같이 (10, 10)의 픽셀의 RGBA값을 튜플로 되돌려 줍니다.
Python Pillow 특정 픽셀의 색상 변경 방법
이제 원본 이미지는 손상시키지 않고 (10, 10)의 색상을 빨간색(#FF0000)으로 바꿔보겠습니다. 1번 라인에 튜플에 들어가는 값은 순서대로 R, G, B, A 입니다. 2번 라인과 같이 다른 파일 이름을 지정해 주면, 새로운 파일로 저장됩니다.
dat[10, 10] = (255, 0, 0, 255)
im.save("b.png")
Python위의 코드를 실행한 결과는 아래와 같습니다.
For 루프 사용하여 색상 변경
이제 for-loop을 사용해서 특정 영역의 색상을 변경해 보도록 하겠습니다. x는 11~17인 경우이면서, y는 6~10인 경우에만 빨간색으로 채워보도록 하겠습니다.
width = im.size[0]
height = im.size[1]
for x in range(width):
for y in range(height):
if 10 < x < 18 and 5 < y < 11:
dat[x, y] = (255, 0, 0, 255)
im.save("c.png")
Python위의 코드를 추가로 실행하면 아래와 같이 예상했던 영역에 빨간색으로 채워져 있는 것을 확인할 수 있습니다.
관련 자료
Pillow의 공식문서 PixelAccess Class 페이지를 참고했습니다.