Table of Contents

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 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 3×3 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 30×30 als Schwarz-Weiss-Bild im .pnm-Format mit Gimp exportieren:

  • Ö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 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:
  • Grösse anpassen: Image → Scale Image… auf 30×30 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

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: