file.read() stoppt bei ASCII-Steuerungszeichen 26

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
flashenposter
User
Beiträge: 4
Registriert: Dienstag 18. Juli 2006, 12:12

Hallo an alle hier und an dieses Forum!

Was versuche ich?

Ich möchte in eine HTML Seite Grafiken integrieren. Dazu verwende ich eine Tabelle mit so vielen Zellen wie das Bild Pixel hat, jede Zelle 1x1 px groß und als bgcolor die Farbe von dem Bildpunkt. Das Rendern wird mit folgendem Script durchgeführt:
http://www.freewebs.com/flashenposter/t ... enderer.py

Das Resultat sieht dann etwa so aus:
http://www.freewebs.com/flashenposter/beispiel.html


Wer es ausprobieren kann, kann folgende Bilder verwenden:

http://www.freewebs.com/flashenposter/gutefarben.bmp - geht
http://www.freewebs.com/flashenposter/boesefarben.bmp - geht nicht

Wo liegt das Problem:

Wenn das Script zu einer Farbe kommt, die irgendwo A1 enthält (zb #AFA100), stoppt es. Das liegt wahrscheinlich daran, dass der Farbwert dann mit dem ASCII-Zeichen für 26 dargestellt wird und dieses Steuerungszeichen für Strg+Z steht. Das Öffnen/Readen wird dadurch an diesem Punkt gestoppt. Wie kann ich das vermeiden?
Ich wäre euch für jeden Hinweis sehr dankbar!

mfg flashenposter
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

flashenposter hat geschrieben:Das Öffnen/Readen wird dadurch an diesem Punkt gestoppt.
Hi flashenposter!

Nicht-Textdateien sollten mit "rb" geöffnet werden.

Code: Alles auswählen

f = file("filename", "rb")
Vielleicht wars das schon.

Wozu brauchst du das? Zum Versenden von Spam?

mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

flashenposter hat geschrieben:Hallo an alle hier und an dieses Forum!
Ich möchte in eine HTML Seite Grafiken integrieren. Dazu verwende ich eine Tabelle mit so vielen Zellen wie das Bild Pixel hat, jede Zelle 1x1 px groß und als bgcolor die Farbe von dem Bildpunkt.
AUA!!!
Hat das irgendeinen tieferen Sinn?? Oder ist das ein "weil es geht"?
Und offne deine Files bitte als binary:

Code: Alles auswählen

def zeichne(filename):
    fileinhalt=file(filename,"rb")   #read file 

Code: Alles auswählen

pfad=raw_input("Bitte geben sie den Pfad zu einem *.bmp File an:\n>>>  ")
datei=file("picture.html","wb")
datei.write(zeichne(pfad))
datei.close()
Damit werden die Dateien 1:1 übernommen

mfg, querdenker

Nachtrag: sehe gerade, das Gerold den selben Gedanken hatte :D
flashenposter
User
Beiträge: 4
Registriert: Dienstag 18. Juli 2006, 12:12

Danke euch beiden!
Problem wäre damit gelöst.
gerold hat geschrieben: Wozu brauchst du das? Zum Versenden von Spam?
Wäre sicher eine Anwendungsmöglichkeit. Auf die Idee bin ich noch nicht gekommen.
querdenker hat geschrieben:
flashenposter hat geschrieben:Hallo an alle hier und an dieses Forum!
Ich möchte in eine HTML Seite Grafiken integrieren. Dazu verwende ich eine Tabelle mit so vielen Zellen wie das Bild Pixel hat, jede Zelle 1x1 px groß und als bgcolor die Farbe von dem Bildpunkt.
AUA!!!
Hat das irgendeinen tieferen Sinn?? Oder ist das ein "weil es geht"?
Mir war einfach langweilig, und ich wollte wissen ob es geht. Das Problem selbst würde allerdings auch bei "ernsthafteren" Aufgabenstellungen bestehen.

mfg flashenposter
Antworten