Search on blog:

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')
pillow rysuje plan mieszkania

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 …

« Page: 1 / 1 »