Huh? Laut Anleitung darf d hier nicht 0 sein...
Probiere mal 1,255,1,255,.... anstatt 0,255
Bild an Drucker senden
Hier nochmals was ich genau mache:
Und dazwischen eben immer die Kommandos ausführen
Lg
Code: Alles auswählen
# Drucker initialisieren
cmd = ''.join(map(chr, (0x1b,0x40)))
# NV bit image definieren
cmd = ''.join(map(chr, (0x1c, 0x71, 1, 1, 0, 1, 0, 1, 255, 1, 255, 1, 255, 1, 255)))
# NV bit image drucken
cmd = ''.join(map(chr, (0x1c, 0x70, 1, 0)))
# Zeilenvorschub
cmd = ''.join(map(chr, (0x1b, 0x4a, 1)))
Lg
Ich verstehe ihn ja auch nicht ganz...
0x1c 71 = Befehl
1 = n, Nummer des Bildes
1 0 = xL xH, Low- und Highbyte der Auflösung / 8. Hier also 1, also 8 punkte breit
1 0 = yl yH, dito für y
1 255 1 255 ... = die d1-d8, also die Werte für die Dots
Versuch es erstmal mit dem GS * Befehl, der sieht einfacher aus, und
es wird auch nichts ins NV geschrieben, vielleicht geht das nicht.
0x1c 71 = Befehl
1 = n, Nummer des Bildes
1 0 = xL xH, Low- und Highbyte der Auflösung / 8. Hier also 1, also 8 punkte breit
1 0 = yl yH, dito für y
1 255 1 255 ... = die d1-d8, also die Werte für die Dots
Versuch es erstmal mit dem GS * Befehl, der sieht einfacher aus, und
es wird auch nichts ins NV geschrieben, vielleicht geht das nicht.
http://www.pythonware.com/products/pil/
Damit dann das Bild laden, in Graustufen umwandeln und verkleinern. Diese Daten dann an den Drucker senden.
Z.B.
Damit dann das Bild laden, in Graustufen umwandeln und verkleinern. Diese Daten dann an den Drucker senden.
Z.B.
Code: Alles auswählen
import Image
im = Image.load("Datei.gif")
im.convert("L") # Graustufen
im.resize( (32,32), Image.ANTIALIAS)
image_string = im.tostring()
Dies ladet mal die gif datei und speichert es in einer anderen Datei wieder ab.
und nun sollte ich es hiermit ausdrucken können, da das bild an sich ja 32x32 ist:
Nun sollte ich doch das bild drucken, jedoch passiert rein gar nichts 
Code: Alles auswählen
import Image
import os, sys
im = Image.open(sys.argv[1])
im.convert("L") # Graustufen
im.resize( (32,32), Image.ANTIALIAS)
image_string = im.tostring()
out = open("test.dat", "wb")
out.write(image_string)
out.close()
Code: Alles auswählen
cmd = ''.join(map(chr, (0x1D, 0x2A, 32, 32)))
img = open(sys.argv[1], "rb")
for line in img:
for i in line:
cmd += i

for line in ... geht nur (und macht auch nur Sinn) bei textdateien. Mach stattdessen
Außerdem musst du 32 noch durch 8 teilen. Das Kommando lautet also 1D,2A, 04, 04
Code: Alles auswählen
cmd += img.read()
Oops. convert und resize liefern ein neues Bild zurück... So ist es richtig
Code: Alles auswählen
img = img.convert("L")
img = img.resize( (32,32), Image.ANTIALIAS)
# oder als Einzeiler
img = img.convert("L").resize((32,32),Image.ANTIALIAS)
Ähm... Den Link habe ich schon gepostet, einfach runterscrollen 
Bei mir geht das ohne Probleme

Bei mir geht das ohne Probleme
Code: Alles auswählen
>>> a = Image.open("blabla.jpg").convert("L").resize((32,32),Image.ANTIALIAS).tostring()
>>> len(a)
1024
Hast du dir das 32x32 Bild mal angesehen? Kann gut sein, dass der resize-Filter da Blödsinn macht. Ich würde mir gute Testbilder suchen (Schachbrett, Dreieck, Kreis, etc.) [die auch schon 32x32 sind und von daher nicht resized werden müssen) Da kann man in der Regel gut feststellen, wo es hakt.
Außerdem muss es natürlich nicht 32x32 sein
Außerdem muss es natürlich nicht 32x32 sein

Hallo,
also irgendwie bekomme ich es nicht hin, das das Bild auch tatsächlich gedruckt wird. Habe zwar wirre Schwarzpunkte, jedoch kein Bild.
Habe ein simples Bild genommen und dieses dann umgewandelt, somit besteht das bild dann nur aus 255 und 0.
Ich habe die Steuercodes für den FS und GS probiert, jedoch beide male ohne Erfolg.
Lg cool_zero
also irgendwie bekomme ich es nicht hin, das das Bild auch tatsächlich gedruckt wird. Habe zwar wirre Schwarzpunkte, jedoch kein Bild.
Habe ein simples Bild genommen und dieses dann umgewandelt, somit besteht das bild dann nur aus 255 und 0.
Ich habe die Steuercodes für den FS und GS probiert, jedoch beide male ohne Erfolg.
Lg cool_zero
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!cool_zero hat geschrieben:also irgendwie bekomme ich es nicht hin, das das Bild auch tatsächlich gedruckt wird.
Ich frage mich nur, warum du nicht auf meine Hinweise eingegangen bist. Gibt es irgendeine Anweisung von oben, dass du es dir nicht einfach machen darfst?
- Treiber installieren.
- Testen ob der Ausdruck mit irgendeiner Textverarbeitung oder Grafikprogramm funktioniert
- Mit wxPython drucken.
http://www.python-forum.de/post-38457.html#38457
http://www.python-forum.de/post-38450.html#38450
mfg
Gerold
Zuletzt geändert von gerold am Montag 26. Juni 2006, 08:00, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Ich habe diese Gründe schon mehrmals belegt oder?
Wie bereits mehrmals geschrieben soll das ganze minimalistisch wie möglich gehalten werden.
Keine Treiber usw. Es muss doch irgendwie zu schaffen sein das ganze mit Druckersteuercodes zu drucken, deshalb würde ich eben Eure Hilfe brauchen.
Lg cool_zero
Wie bereits mehrmals geschrieben soll das ganze minimalistisch wie möglich gehalten werden.
Keine Treiber usw. Es muss doch irgendwie zu schaffen sein das ganze mit Druckersteuercodes zu drucken, deshalb würde ich eben Eure Hilfe brauchen.
Lg cool_zero
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Nein, ich will jetzt nicht darauf eingehen, warum du keinen Treiber installieren darfst. Ich wünsch dir einfach nur viel Glück bei deinem Vorhaben.cool_zero hat geschrieben:Keine Treiber usw.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.