Rysowanie wieloboku z obwódką wypełnionego kolorem z użyciem PIL/Pillow w Pythonie
Przykład jak moduł PIL
oraz Pillow
pozwala na rysowanie wieloboku z obwódką i/lib wypełnionego kolorem.
Przykład 1
Poniższy kod tworzy trójkąty w narożnikach pustego obrazka
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from PIL import Image, ImageDraw
# stworzenie pustego obrazka
img = Image.new('RGB', (100,100))
# obiekt pozwalający rysować na podanym obrazie
drw = ImageDraw.Draw(img)
# wielobok bez wypełnienia z domyślną białą obwódką
drw.polygon([95,5,80,5,95,20])
# wielobok bez wypełnienia i z czerwoną obwódką
drw.polygon([5,95,5,80,20,95], outline=(255,0,0))
# wielobok z zielonym wypełnieniem i bez obwódki
drw.polygon([5,5,5,20,20,5], fill=(0,255,0))
# wielobok z zielonym wypełnieniem i z czerwoną obwódką
drw.polygon([95,95,95,80,80,95], fill=(0,255,0), outline=(255,0,0))
# zapisanie do pliku
img.save('result.png')
Przykład 2
#!/usr/bin/env python
#-*- coding: utf-8 -*-from PIL import Image, ImageDraw
from PIL import Image, ImageDraw, ImageOps
# stworzenie pustego obrazka
img = Image.open('trzmiel.png')
# powiększenie obrazka
img_with_border = ImageOps.expand(img, border=5, fill='white')
# obiekt powalający rysować na podanym obrazie
drw = ImageDraw.Draw(img_with_border)
# wymiary obrazka - width, height
w, h = img_with_border.size
# wymiary wieloboku - size 1, size 2
s1 = 25
s2 = 50
# wielobok z białym wypełnieniem i bez obwódki
drw.polygon([s1,0,s2,0,0,s2,0,s1], fill=(200,200,200))
drw.polygon([w-s1,0,w-s2,0,w,s2,w,s1], fill=(200,200,200))
drw.polygon([w-s1,h,w-s2,h,w,h-s2,w,h-s1], fill=(200,200,200))
drw.polygon([s1,h,s2,h,0,h-s2,0,h-s1], fill=(200,200,200))
# zapisanie do pliku
img_with_border.save('result.png')
If you like it
Buy a Coffee
