Rysowanie planu mieszkania za pomocą PIL/Pillow w Pythonie
Rysowanie planu mieszkania z pomocą Pillow.
Przykład planu mieszkania w postaci współrzędnych początku i końca ściany.
Dla uwidocznienia ścian każda jest rysowana innym kolorem.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from PIL import Image, ImageDraw
# współrzędne ścian (poczatek_x, poczatek_y, koniec_x, koniec_y)
mieszkanie = [
# kuchnia
(0, 0, 100, 0),
(0, 0, 0, 100),
(0, 100, 100, 100),
# kuchnia - drzwi do korytarza
(100, 100, 100, 80),
(100, 0, 100, 40),
# korytarz - drzwi wyjsciowe
(100, 0, 120, 0),
(160, 0, 180, 0),
# korytarz
(180, 0, 180, 100),
# korytarz - drzwi do pokoju
(180, 100, 160, 100),
(100, 100, 120, 100),
# pokoj
(0, 100, 0, 200),
(0, 200, 180, 200),
(180, 200, 180, 100),
]
# kolory ścian
colors = [
"#880000", "#884400", "#888800", "#008800",
"#008888", "#000088", "#440088", "#880088"
]
colors_count = len(colors)
colors_selected = 0
# stworzenie pustego obrazka 300x300 z białym tłem
img = Image.new('RGB', (300,300), (255,255,255))
# obiekt pozwalający rysować na obrazku
drw = ImageDraw.Draw(img)
# rysowanie kolejnych ścian różnymi kolorami
for sciana in mieszkanie:
# współrzędne końców ściany przesunięte bardziej na środek
x1, y1, x2, y2 = sciana
sciana = (x1+50, y1+50, x2+50, y2+50)
# rysowanie ściany
drw.line(sciana, width=5, fill=colors[colors_selected])
# kolejny kolor modulo ilość kolorów
colors_selected = (colors_selected + 1) % colors_count
# pokazanie na ekranie
img.show()
# zapisanie do pliku
img.save('mieszkanie.png')
