파이썬 pillow 라이브러리 사용법

PILLOW 이미지 라이브러리 사용법

기초


임포트

from PIL import Image

이미지 로드, 사이즈, 보여주기

image = Image.open('12.png')

#사이즈
print(image.width)
print(image.height)
print(image.size) 

#보여주기
image.show()

#보여주기2
import matplotlib.pyplot as plt
plt.imshow(image)

이미지 조작


#이미지 오픈
image = Image.open('12.png')

#이미지 모드 변환
image = image.convert("RGBA")

#이미지 생성
canvas = Image.new("RGBA", (300, 300))

#크기 조작. LANCZOS, Bilinear 추천
image=image.resize(size=(512,512),resample=Image.LANCZOS) 

#이미지 필터링
from PIL import ImageFilter
image=image.filter(ImageFilter.BLUR)

#이미지 회전
image= image.rotate(90)


#이미지 저장
image.save("12.png")


#이미지 넘파이 변환
imageArray=np.array(image)


  • 이미지 생성: mage.new(mode, size)
  • 이미지 오픈: Image.open(path)
  • 필터: ImageFilter에 모여있음

이미지 그리기

from PIL import Image, ImageDraw

#이미지 그리기
canvas = Image.new("RGB", (300, 300))
d = ImageDraw.Draw(canvas,mode="RGBA")
d.line([10, 10, 290, 10, 290, 290, 10, 290, 10, 10], width=2, fill=(0,255,0,10))
d.text((10, 10), "Draw this text")

#이미지 옮겨붙이기
image = Image.new("RGBA", (300, 300),color=(255,255,255,0))
canvas = Image.new('RGBA', (400,400), color=(127,251,25,255))
canvas.paste(image, (0,0)) #canvas에 이미지가 옮겨붙여짐(값복사)

#마스크
image = Image.new("RGBA", (300, 300),color=(255,0,0,300))
canvas = Image.new('RGBA', (400,400), color=(0,255,0,127))
mask=Image.new('RGBA', (300,300), color=(0,0,0,127))
canvas.paste(image,(0,0),mask=mask)


  • ImageDraw에 이미지 그리는 함수가 모임
  • 이미지 드로우 클래스는 이미지 클래스와 별개
  • 이미지 드로우로 그린건 원본에 반영(canvas)
  • 사이즈가 초과돼도 크기범위 내에 알아서 그림
  • 마스크의 색은 무의미 하다. 오직 알파값만

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.