Hallo,
Über GPIB kann man von einem Oszilloskop den Screenshot als Bitmap-Datei auf dem Rechner abspeichern.
Wie kann ich es mit Python machen ?
Das Problem, das ich habe, ist das Abspeichern der Daten, die über GPIB kommen.
Das Auslesen der GPIB-Strings kann ich schon.
Danke
Bitmap einlesen und speichern
Hey riven
Schau dir mal die Python Image Library(PIL) an.
Dort gibt es die Möglichkeit von einem String einzulesen. Anbei der Link zum Manual. Siehe dort Seite 8, "Reading from a String"
http://www.pythonware.com/products/pil ... dbook.pdf
greets george
Schau dir mal die Python Image Library(PIL) an.
Dort gibt es die Möglichkeit von einem String einzulesen. Anbei der Link zum Manual. Siehe dort Seite 8, "Reading from a String"
http://www.pythonware.com/products/pil ... dbook.pdf
greets george
Hey riven,
anbei mal ein Beispiel wie ein Image als String abgelegt ist und wie man damit in Python umgeht
Wie die String-Daten aus deinem GPIB-Gerät aussehen kann ich so nicht wissen. Das mußt du Testen. Kriegst du das gesamte Bitmap als einen String oder in Teilen, usw....
Das obige Beispiel soll dir halt mal zeigen, wie so etwas gehandelt wird.
Mit PIL kannst du sehr viele gängigen Formate erzeugen und die Formate konvertieren.
greets george
anbei mal ein Beispiel wie ein Image als String abgelegt ist und wie man damit in Python umgeht
Code: Alles auswählen
import StringIO
import PIL
import Image
def getBuffer():
"""
Der Buffer wurde aus der Datei images.py aus den wxPython-Demos
entnommen
"""
return \
('\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
\x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
\x04\xb9IDAT8\x8d\x8d\x95[l\x14U\x18\xc7\x7fgn;;\xbb\xdbv/\x14[J\xa1\\*\xb7\
\x16\xe5"E@\xd2\x82\x12!\r\x12\x02\xc6H\x82D\x8d\x89\x89\x89\xf8 \x89\x89\
\xf0\x82\x0f\xea\x8b\x86\x07/\x81\x17\x13#JH$"P\xc1\xa8\x14\x11)5`\xb17*mi\
\xa1\xf4\xc2\x96vw\xbb;\xbb\xb33>\x0ctA.z\x92\xefe\xce\x9c\xdf\xf9\xce\xf7\
\xff\x9f\xf3\t\xfesl\xf7\xa2\xa7"\xd8\x9a\x01\x96\x83l%HjC\xb0\xc7|\xd8*\xf1\
\xc0\x19\xcf\xf6j\x1c^F\xd6\x9f\xc2\x93W\x84\xe6U\x00H\'\xd2\x98\xb1\x1e\xb2\
\xa9\x13\xc8\xec%\xf9\xd1\xb9\xff\x076\xde)"\x9b\xfa\x18\xa3pSx\xce\x12\x16U\
\x95S1;\xc4\x84\xa0\x86\x95\x85\xab\x03&\xe7/\x0e\xd1\xd4\xd0B\xac\xe3w\x9b\
\xe4\xf0\xe7\xf8\xad\x1dD\xf7\x8c>\x18\xec\xdbQA\xd6>d\x94//{~\xeb*^Z\xe7\
\xa3l\x02X\x16\xa4\xd2\x90\xb5\xdd\xdf\xcc,\\\xec\x81/\x0e\x0fs\xf2\xdb:\xac\
\x9es\x8d\x08\xf99\x92\x1f\xf4\xde\x0b\xd6\xdf\x9a\x8c\x90\xeb#\x8bk\xa7\xec\
~w\x05\x1b\x97\xc0\xf5a\xe8\xec\x87\x84\xe9B%\x01\xb2\x04\x92\x04>\x0f \xc1\
\x81S\xb0\x7f\xdfQ\x92\xad?6b\xa4kng.\x8f\x83\xe5\xaa/\xfd\xb3k\x9ex\x7f\xf7\
j\xd6/\x82\xd6^\x18\x8aA&\x0b\xaa\x02s&\xbb\x1bD\xe3\x90\xb6 \x96\x82\xb1\
\x14\x94O\x02+8\x93\x8e\x8eh\xb1=\xd8\x17${\xe6\xfb\x1cX{s=y\xa5;\xb7m\xdf\
\xcc\xd6U\n\x17\xba`d\x0c\xcc\x0ch\n\xd4TBI\x18\xf2\r\xf8\xe3\xb2\x0bN[\xee|\
\xd2\x84\xe20\\1\'1\xd8\xd1\xb4\x001\xff\x08\xd6\x99k\x12\x00\x92\xf2Z\xc9\
\x82\'\xd9\\\xa3\xd3\xda\x0b\x83\xa3\x10K\x82*Cu\x05\xf8u\xf7P\xcd\xdd\x16#\
\t\x88\xa7r1\x9a\x84\xac\x05\x15s\x83\x18eU\x12B\xbc\n\xa0\x90\xb7+\x84\xaa-\
\xadZV\x8e\xae@{\x8f\x9b\xcd\xa4\x10<\xf3\xf8\xadZ\x02G\xcf\x9a\xd4\xfd\xa9\
\xa0( DN !\xb9\xb5\x8f\x04 8}6\xa9\xaeS\xab\xed\xfc]\x86\x84\x9c-\x92\x0b\
\x1e)\x985=\x9f\xe6+\xd0\xd2\x0b\xb2\x80\xb5\x0bs\xd0\x86\xb64\xbf]R\x08\xe5\
\xc9\xe4\xfb\xdc\xef\x86\xc7\x15q$\x01\xa3cn\xd6y\xe1\x08J T\x82\x99\x9d\xa2\
(\xaa\xc8\xf3\x04\x82\x08Y\xe2|\xa7\x9b\xcd\x96\x95\xe0\xd5r.\xac\x9c\xa6\
\xf1\xd8\x8c\x9c\x85l\x07\x1c\xc7u\xca\'u\xd0\xd8\xe1\n,\xab\x1a\xb2\x91\xaf\
)\xe9\x1b\x11\x05\xc5\x8b\xeaQH\xa4\xe1\xea0\x94\x84\x9c[5\xcd9\xd1\xa3\xdes\
\x8d\xc6G\xd8\xef0\x14\x17\x8ce \xed\x80\xeaQqdM(B\xf7\xc4!\xcdX\xc6\xe1FR\
\xd0\xd9\x01\xef\x1d\xcc\xb0s\xb3:\x0e\xafo\xcep\xa6\xdd&\xe0u3\xb5\x1d\xb0m\
\xd79\xc7\x9b\x15F\x922\x08\xd0=\x16\x02+#k\xc6\xb0\xe2\x91\x94\xeb\x96\x19\
\x8b\xdf\x8c\x8d\xf9#!\x1f\xe9a\xc1\xa1\x8b*\xba\xd7\xe2\xedZ\x05\x10TNU\xf9\
\xba\xc1\xe1d\x03x\x14\x17|[>\x8f\n>?h*\x8c\x0e\xc6\xb0m\xf3zBR\xba\xe5t\xf4\
\xd8\x98Z\xb8n\x8d\x11\x998u\xda\x8c \x89\x0c\x18\x86\xa0\xa5_b4aQ5]BW\x05\
\xd5s\x05\xdd\xc3\x82aS\xe0\xf7\t\x0c\xaf\xc0\xf0\x82\xc7\xe3F\xc0\x0f\xfd\
\x1d\x9d\x8c\\\xeb:\x9cn}\xe3+\t@\x92\xe5\xbdW\xda:\xc8:6\xc5\x110|\x10\n\n\
\xea\xfeV\xd8{\xca\x02\x1c\xbc*\xbc\xb8\x14\xbc>\xf0\xdd\x11\x86\x0f&\x86\
\x01\xcb$\xda}\tY\xd3\xf6\x8d\xdf\xbc\xf4\x8a-\x7fI}\xb1Uh\xde\xd2Ys\xc3\xa8\
282\x18\xba\xa0\xfd\x86D<i\x111\xe0x\xbb\xc3@RB\xd7AUA\xd5 \x92\x07\xba\x0eM\
\xbf63\xd4\xd3s`\xa4a\xdb\x87wI\x1f\\\xb9\x7f\x9e"+\xf5\x8b\xd7,-X\xb4\xa4\
\x98t\x06FR`\xd9`e\x1ddll!\xa1H\x02\x07P%(\xf0\xba\x0f\xd1\xe9\x9f;i\xfa\xa5\
\xf1\xb2\xb0\xa5\xe5C\xf5\x1b\xfb\xee\xf6\x14\x10\xae\xf9\xb6ZQ\xa5\x83\x95\
\xcb+\x82\xcbV\x94R\x10\x90\x183!\x99\xc9=\x99\x8a\x04\x86\x06\xba\x06\x83Q\
\x8b\x93?u\xd2z\xb6\xb9[\xe0\xd4\x0e\x9c\xd8\xd0\x94\x93\xf5_c\xe2\xd3\xdf\
\xcds$>-,-Z6\x7f\xe1d\x1e\x9dY@8_Cu\xfb\x07f\xc6a(j\xd2\xd2v\x93\x0b\xe7\xba\
\x88\xf6\r\x1dV\x85\xf5\xfa\xb5\x1f6\xf4\xdc\xc9\xb9\x7fk\xda\xf4\x8d\\\x98\
\xf0\xbf \x84\xf4\x8a\x11\xf0.,\x08\x05\xfc\x86O\xc7q\x1c\x12\xf1$7\xa3\xb1\
\x91d<u\x1a\xf8l\xe0\xc8\xb3\x87\xee\x87xp\xcf\xbb}\x82\xda\xba2\xdb\x16\xe5\
6v\x04[vd\xd9\xe9W-\xab\xed\xea\xb1\xb5\xbd\x0f[\xf7\x0f@\x01\xd7\x0c\xb0\
\xdfs2\x00\x00\x00\x00IEND\xaeB`\x82' )
def getImage():
im = Image.open(StringIO.StringIO(getBuffer()))
return im
#Beispiel als GIF speichern
im = getImage()
im.save(r'testGif.gif', 'GIF')
del (im)
#Beispiel als Bitmap speichern
im = Image.open(r'testGif.gif')
im.save(r'testBmp.bmp', 'BMP')
del (im)
Das obige Beispiel soll dir halt mal zeigen, wie so etwas gehandelt wird.
Mit PIL kannst du sehr viele gängigen Formate erzeugen und die Formate konvertieren.
greets george
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja. BMP-Datei mit PIL öffnen und als JPEG speichern.riven hat geschrieben:gibt es die möglichkeit mit python, bmp in jpg zu konvertieren?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Wenn das Oszilloskop ein zweifarbiges Bild liefert, dann sollte man aber lieber PNG oder GIF nehmen. Da ist die Qualität besser als bei JPEG.
Dieses Thread ist schon etwas alt, aber ich wollte kein neues eröffnen, da mein Problem ähnlich ist.
Ich möchte ein JPEG-Bild in ein Schwarz/weisses BMP (PNG oder GIF) Bild abzuspeichern. Wenn ich z.B bild.save("datei.bmp", "BMP") mache dann wird es gespeichert, aber in farbe, welche Funktion soll ich benutzen um es in ein Schwarz/Weiss Bild zu konvertieren.
Ach ja noch was: kennt jemand eine alternative Adresse zum PIL handbook, weil die offizielle siete scheint im moment offline zu sein.
Ich möchte ein JPEG-Bild in ein Schwarz/weisses BMP (PNG oder GIF) Bild abzuspeichern. Wenn ich z.B bild.save("datei.bmp", "BMP") mache dann wird es gespeichert, aber in farbe, welche Funktion soll ich benutzen um es in ein Schwarz/Weiss Bild zu konvertieren.
Ach ja noch was: kennt jemand eine alternative Adresse zum PIL handbook, weil die offizielle siete scheint im moment offline zu sein.
Wahrscheinlich so:
Farbe in Graustufe, dann in Schwarz-Weiß umwandeln mitDabei wird jeder nicht schwarze Punkt des Graustufenbildes weiß dargestellt. Falls Du statt Schwarz-Weiß Graustufe meinst, lässt Du einfach convert('1') weg.
MfG
HWK
Farbe in Graustufe, dann in Schwarz-Weiß umwandeln mit
Code: Alles auswählen
im.convert('L').convert('1') # ungetestet
MfG
HWK