Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 5726 razy

Pomyślałem sobie, że napiszę mały skrypt, którego zadaniem będzie narysowanie małej bitmapy w grafice żółwia. Jak pomyślałem tak też i uczyniłem. Kod skryptu wygląda następująco:

from PIL import Image # import klasy Image z modułu PIL (potrzebne do obsługi ładowania grafiki) import turtle as tr # import modułu turtle do rysowania grafiki żółwia potrzebnej img = Image.open("Einstein.jpg") # tutaj ładuję plik graficzny, który będzie rysowany piksel po pikselu img = img.resize((100,100)) # zmiana rozmiaru bitmapy do rozsądnych wymiarów img_data = img.getdata() # pobieranie kolorów poszczególnych pikseli bitmapy def drawLine(move,angle, c=None): # funkcja, która będzie odpowiedzialna za rysowanie pikseli if c != None: # gdy kolor nie jest równy None to tr.pencolor(c[0] / 255, c[1] / 255, c[2] / 255) # ustawiaj kolor tr.left(angle) # obrót o zadany kąt tr.forward(move) # ruch do przodu o zadaną wartość tr.speed(0) # ustawiam maksymalną prędkość size = 2 # rozmiar pędzla tr.pensize(size) # ustawienie rozmiaru pędzla tr.left(-90) # ustawienie początkowego położenia żółwia for x in range(img.width): # współrzędne dla x for y in range(img.height): # współrzędne dla y drawLine(size,0,img_data[x + y * img.width][:3]) # rysowanie poszczególnych pikseli drawLine(size,90) # trzeba teraz poprawnie ustawić żółwia w celu rysowania następnej linijki drawLine(size * img.height,90) # to też związane z ustawieniem żółwia w poprawnej pozycji do rysowania następnej linii tr.left(180) # obrót żółwia o 180 stopni d=input("") # a to, żeby okno z grafiką nie znikało po zakończeniu rysowania.

Do działania skryptu potrzebna jest plik graficzny, ja wybrałem plik z wizerunkiem Einsteina. Poniżej zamieszczam krótki filmik działania programu.

Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.