-
python: Pillow 라이브러리 정리Python 2021. 6. 7. 16:06
pillow는 파이썬의 이미지 편집 라이브러리로
이미지 편집에 관한 여러가지 기능을 제공한다.
1. 이미지 잘라내기
from PIL import Image img = Image.open('gif/panda.gif') # (100, 200)에서 (600, 700)까지 xy = (100, 200, 600, 700) # xy 범위를 크롭해서 가져온다. crop_img = img.crop(xy) print(crop_img.size) crop_img.show()
2. 이미지 붙여넣기
from PIL import Image img = Image.open('gif/panda.gif') # (100, 200)에서 (600, 700)의 이미지를 잘라낸다. x = (100, 200, 600, 700) crop_img = img.crop(x) # 붙여 넣는 이미지의 크기와 원래이미지의 크기가 같아야 한다. y = (0, 0, 500, 500) # crop_img를 y에 붙여넣는 것 img.paste(crop_img, y) img.show()
3. 이미지 회전, 리사이즈, 대칭
# 이미지 회전하기 from PIL import Image img = Image.open('gif/panda.gif') # 반시계 방향으로 90도 회전 img_r = img.rotate(90) img_r.show()
# 이미지 사이즈 조절하기 from PIL import Image img = Image.open('gif/panda.gif') # 이미지 크기를 width = 100, height = 500으로 조정 img_s = img.resize((100, 500)) img_s.show()
# 이미지 좌우반전 from PIL import Image img = Image.open('gif/panda.gif') # 이미지를 좌우 반전시킨다. img_opp = img.transpose(Image.FLIP_LEFT_RIGHT) img_opp.show()
4. 이미지에서 R, G, B 추출하기
from PIL import Image img = Image.open('gif/panda.gif') # r, g, b 성분 추출하기 r, g, b = img.split() print(r.show()) print(g.show()) print(b.show())
5. merge 이용해서 R, G, B 합치기
from PIL import Image img = Image.open('gif/panda.gif') # R G B 성분 나누기 r, g, b = img.split() # RGB모드를 이용하여 (b, g, r)로 merge RGB_img = Image.merge("RGB", (b, g, r)) RGB_img.show()
6. 이미지 필터 씌우기
# 이미지 필터 씌우기 from PIL import Image from PIL import ImageFilter img = Image.open('gif/panda.gif') # 이미지 필터링하기 img1 = img.filter(ImageFilter.BLUR) img2 = img.filter(ImageFilter.EMBOSS) img3 = img.filter(ImageFilter.CONTOUR) img1.show() img2.show() img3.show()
7. Tkinter와 pillow 같이 사용하기
from PIL import Image, ImageTk import tkinter root = tkinter.Tk() # 500 x 500 크기의 캔버스 만들기 canvas = tkinter.Canvas(root, width=500, height=500) canvas.pack() # pillow 이미지를 tk 이미지형식으로 변환 img = Image.open('gif/panda.gif') img_tk = ImageTk.PhotoImage(img) # 캔버스의 300 x 300을 중심으로 한 이미지 생성 canvas.create_image(300, 300, image=img_tk) root.mainloop()
8. RGB picker 만들기
import tkinter from PIL import Image, ImageTk root = tkinter.Tk() cv = tkinter.Canvas(root, width=1000, height=1000) def click(event): print("클릭 위치:", event.x, event.y) r, g, b = img.getpixel((event.x, event.y)) print(r, g, b) print("R:{} G:{} B:{}".format(r, g, b)) cv.bind("<Button>", click) cv.pack() img = Image.open('gif/panda.gif') img_tk = ImageTk.PhotoImage(img) cv.create_image(250, 250, image=img_tk) root.mainloop()
반응형'Python' 카테고리의 다른 글
Python: sqlite3 라이브러리 정리 (0) 2021.06.08 python: pandas 라이브러리 정리 (0) 2021.06.06 Python: BeautifulSoup 라이브러리 정리(find, find_all, 태그, 클래스, id, 속성) (0) 2021.06.02 Python: matplot 라이브러리 정리 (선, 막대, 산포도, 파이, 히스토그램) (0) 2021.05.31 Python: numpy 라이브러리 정리(indexing, slicing, 정규분포 난수) (0) 2021.05.30