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)
- 사이즈가 초과돼도 크기범위 내에 알아서 그림
- 마스크의 색은 무의미 하다. 오직 알파값만
Ghost