====== pnm-Bilder ====== * Installieren Sie GIMP auf der Kommandozeile: winget install gimp.gimp.3 * Legen Sie ein neues Verzeichnis mit Namen ''labyrinth'' an. Speichern im Folgenden alle Datein in diesem Verzeichnis. * Studieren Sie die Erklärungen zum PNM-Format, speziell das **Pixmap**-Format (ASCII Portable Pixmap, P3-Format) auf der [[https://de.wikipedia.org/wiki/Portable_Anymap#Pixmap|entsprechenden Wikipedia Seite]]. * Mit VS-Code, erstellen Sie eine Datei mit Namen ''t.pnm'' * Erstellen in der Datei ''t.pnm'' «von Hand» eine ASCII Portable Pixmap (**P3** Format), die ein Farb-Bild mit 3x3 Pixeln enthalten soll. Stellen Sie ein rotes 'T' auf blauem Grund dar. * Speichern Sie Ihre Datei und öffnen Sie diese mit GIMP und vergrössern Sie das Bild, damit die einzelnen Pixel auch gut sichtbar sind. * Korrigieren Sie allfällige Fehler in Visual Studio Code, speichern Sie die Datei und laden Sie diese neu mit GIMP. ===== Vorbereitung der Bilder und Export als .pnm mit GIMP ===== Ziel: Folgendes Bild in der Auflösung 30x30 als Schwarz-Weiss-Bild im ''.pnm''-Format mit Gimp exportieren: {{lehrkraefte:blc:informatik:glf24:laby:herz.svg?50}} * Öffnen Sie das Herz-Bild mit GIMP. Dazu gibt es verschiedene Möglichkeiten, z.B. * Kopieren, einfügen. * Speichern, öffnen. * Konvertierung zu schwarz/weiss: * Fügen Sie einen weissen Hintergrund ein: * Toolbox öffnen mit Ctrlb. * In der Toolbox, unter Layers {{:lehrkraefte:blc:informatik:glf24:laby:pasted:20250507-100257.png}} ganz unten einen neuen Layer mit weissen Hintergrund einfügen. * Den weissen Layer nach hinten verschieben, damit das rote Herz wieder sichtbar ist. * Layer vereinigen: Image -> Merge visible Layer oder Ctrlm. * Graustufenbild: Colors -> Desaturate -> Desaturate * Helligkeitsbereich anpassen: Colors -> Levels, dort den linken Schieber der Input-Level nach rechts schieben: {{:lehrkraefte:blc:informatik:glf24:laby:pasted:20250507-101114.png}} * Grösse anpassen: Image -> Scale Image... auf 30x30 Pixel skalieren. * Das Bild als die Datei ''herz.pnm'' ins Verzeichnis ''labyrinth'' exportieren: File -> Export (oder Ctrle), ASCII-Format wählen. * Öffnen Sie die Datei ''herz.pnm'' in VS-Code. Gibt es in dieser Datei Überraschungen? Woher kommen diese? ===== Einlesen einer pnm-Datei in Python ===== * Falls Sie mit dem iPad unterwegs sind, laden Sie sich das Herzbild als ASCII-codierte pnm-Datei in das Verzeichnis labyrinth: {{lehrkraefte:blc:informatik:glf24:laby:herz.pnm}} * Speichern die Datei {{lehrkraefte:blc:informatik:glf24:laby:pnmbild.py}} im Verzeichnis ''labyrinth''. * Öffnen Sie das Verzeichnis ''labyrinth'' in VS-Code (File -> Open Folder). * Öffnen Sie die Datei ''pnmbild.py'' und führen Sie diese aus. Oben rechts in VS-Code sollte ein Play-Button zu sehen sein: {{:lehrkraefte:blc:informatik:glf24:laby:pasted:20250512-200147.png}} * Ist kein Play-Button sichtbar, installieren Sie in VS-Code die vorgeschlagene Python-Erweiterung. * Wenn alles klappt, sollte das Bild als ASCII-Art im Terminal von VS-Code erscheinen. Das Bild wird automatisch auf schwarz=0/weiss=1 umgerechnet. Das Bild als Liste wird ebenfalls ausgegeben. Im Terminal werden weisse Pixel als Leerschlag, schwarze als # dargestellt. ===== Eigenes Bild ===== Suchen oder entwerfen Sie ein eigenes Bild, das sich als Bild für ein Labyrinth eignet. Am Schluss müssen folgende Bedingungen erfüllt sein: * Ihr Bild ist als .pnm Bild (ASCII Format) gespeichert. * Die Auflösung des Bildes sollte zwischen 20x20 und 50x50 sein, ideal ist ein Seitenverhältnis von 8:13 (A4-Blatt mit 2cm Rand). * Die schwarze Fläche muss vollständig zusammenhängend sein und an mindestens zwei Orten bis an den Rand gehen, idealerweise auf gegenüberliegenden Seiten. * Die schwarze Fläche darf nicht zu filigran sein und muss überall mindestens 2 Pixel «dick» sein. * Passen Sie das Python-Programm ''pnmbild.py'' in den letzten Zeilen (ab ca. Zeile 94) so an, dass Ihr eigenes Bild geladen wird.