PPM-Bild in ASCII-Art in Python

8

Ich muss ein Programm erstellen, das eine Datei von der Kommandozeile einliest und in ASCII-Art umwandelt. Ich verwende das PPM-Format und hier ist ein Link zu dem Projekt .

Hier ist was ich bisher habe:

%Vor%

Ich erhalte einen Fehler, der besagt, dass das Objekt 'int' nicht iterierbar ist. Gibt es einen einfachen Weg, dies zu beheben, und wie würde jemand empfehlen, dies auszudrucken, während das Bild erhalten bleibt?

Und das letzte, worüber ich mir nicht sicher bin, ist, wie man die Breite und Höhe des Bildes bewahren kann.

Jede Hilfe wird sehr geschätzt.

    
asmith 12.09.2011, 01:10
quelle

3 Antworten

7

Sie können image-to-ansi.py für die Konvertierung verwenden.

Laden Sie zuerst image-to-ansi.py :

herunter %Vor%

Speichern Sie dieses Skript als ppmimage.py :

%Vor%

Sie können das Skript wie folgt testen (vorausgesetzt, Sie haben netpbm und imagemagick installiert):

convert -resize $(($COLUMNS*2))x$(($LINES*2)) logo: pnm:- | pnmtoplainpnm | python3 ppmimage.py

Auf meinem Rechner sieht das so aus:

    
Janus Troelsen 12.12.2012 15:52
quelle
4

Hier haben Sie Ihren Code geändert und funktioniert.
Es ist nicht optimal, es berücksichtigt nicht das Vorhandensein von mehr oder weniger Kommentaren im Header und es gibt keine Ausnahmebehandlung, aber es ist ein Start.

%Vor%

Dies sind die ppm-Zahl und das ASCII-Art-Ergebnis

Und die Micro-ppm-Datei, die ich für das Beispiel verwendet habe:

%Vor%     
joaquin 23.11.2011 15:04
quelle
0

Ich habe vor einiger Zeit eines davon in C # geschrieben und das Zeichen berechnet, das mit dieser Formel verwendet werden soll:

%Vor%

Wie für die Breite und Höhe, können Sie alle zwei Zeilen der vertikalen Pixel um die Hälfte zu halbieren.

Edit 1: als Antwort auf den Kommentar: Die Grundidee ist, dass es Ihren RGB-Wert von 0 bis 255 auf 0 auf die Länge des Arrays skaliert und diesen als Index verwendet.

Bearbeiten 2: Aktualisiert, um zu korrigieren, dass ich Ihre Graustufen-Normalisierung ignoriert habe.

    
0x5f3759df 12.09.2011 01:18
quelle

Tags und Links