jpg in string verwandeln

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
automatix
User
Beiträge: 4
Registriert: Freitag 2. September 2016, 10:44

Hallo, nach 6 Jahren Programmierabstinenz muss ich mal wieder paar Zeilen für einen "Proof of Concept" schreiben.
Long story short:
Ich möchte ein jpg encoden und das dann als String an einen Webservice übergeben.
Webservice und Co läuft, nur der Prozess jpg->string klappt nicht. Das was ich bisher erreicht habe, kann mein Webservice nicht in ein JPG rückverwandeln.
Ich nutze Python 3.4 und habe im Netz diesen Code gefunden. Leider liefert er mir aber nur "leer" zurück:

Code: Alles auswählen

import base64

with open("template.jpg", 'rb') as f:    
    a = base64.b64encode(f.read())
    print(a)
Das Bild liegt im selben Verzeichnis wie mein .py. Wo liegt der Grund?
Danke für Hilfe!
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@automatix: Wenn Du "leer" als Ausgabe bekommst, steht in der jpg-Datei "\x95\xe7\xab", was aber kein gültiges JPG ist.

Was für ein WebService ist das denn? Wie greifst Du darauf zu? Was erwartet er als Eingabedaten?
automatix
User
Beiträge: 4
Registriert: Freitag 2. September 2016, 10:44

Ha! du hast Recht. Wenn ich das Bild in png konvertiere kommt was halbwegs sinnvolles raus. Werde ich morgen gleich nochmal testen. Das Bild selbst scheint die Wurzel allen Übels zu sein.

Das ist ein Webservice, den ich in SAP MII entwickelt habe. Ich rufe den als URL auf ("Runner-Service") und übergebe die Input-Parameter als URL-Parameter - das Bild also als String...Hatte vorher einen Dateinamen als Input aber dann muss MII die Arbeit machen und der Raspberry PI läuft vor sich hin.
Idee ist das Bild bereits von der Cam (Raspberry) encoden zu lassen, damit SAP MII die Arbeit nicht machen muss.
Wie gesagt ist das eher mal als Konzeptstudie zu verstehen...spielen gerade etwas mit der Himbeere um mal zu sehen was die so für uns tun kann...sind aber alle keine Experten.
BlackJack

@automatix: Bilder als URL-Parameter? Du kennst die Längenbeschränkung von URLs‽
automatix
User
Beiträge: 4
Registriert: Freitag 2. September 2016, 10:44

ja stimmt...da war was....mist....
wie kriegt man denn dann ein Bild am besten übertragen?
Dann geht es doch nur über die Bild URL...
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Für große Datenmengen benutzt man normalerweise POST-Requests mit Content-Type "multipart/form-data". Was bei Deinem Framework da möglich ist, weiß ich aber nicht.
automatix
User
Beiträge: 4
Registriert: Freitag 2. September 2016, 10:44

ah okay, danke für den Hinweis. Da muss ich mal nachforschen....wie gesagt, alles Neuland für mich
Für unsere Konzeptstudie speichern wir die Bilder jetzt erstmal auf einem Fileshare und übergeben den Namen der Datei dann an den "Webservice". Quick and dirty - aber funktioniert wunderbar. Wenn es unseren Obrigkeiten gefällt, dann müssen wir uns da wohl noch reinknien...
Antworten