Frohes Neues zusammen!
Ich google mir schon den Wolf - alles nah dran aber mir noch nicht nah genug.....
Ausgangssituation: Ich habe Owncloudauf ner MySql-Datenbank in der Version 9.x am laufen - und auch meine Kontalte in Adressbüchern drin. Einige der Kontakte haben Bildchen mit dabei. Ich möchte nun per sql und python die Bildchen aus der Datenbank im Filesystem ablegen um sie an anderer Stelle anzuzeigen.
Was ich per mysql und python schon hinbekommen habe, ist das extrahieren der VCF-Daten (die liegen bei OC in einem long blob-Feld "carddata" in der Tabelle oc_cards).
Das geht so - Beispielhaft für die Card-Id 29.... (hat nen Bildchen):
#!/usr/bin/env python
import MySQLdb
db=MySQLdb.connect(host="localhost",user="user",passwd="passwort",db="owncloud")
c=db.cursor()
c.execute("SELECT id, carddata FROM oc_cards where id = 29")
myresults = c.fetchall()
for data in myresults:
doc_id = str(data[0])
if data[1] is not None:
outfile=open(doc_id + ".vcf", 'wb')
outfile.write(data[1])
outfile.close()
print("Wrote %s" % doc_id + ".vcf")
Alles anzeigen
Das führt dann zu einer 29.vcf im Filesystem.
In den VCF-Daten an sich liegt ein "irgendwie"-codierter Bereich - der Anfang davon fängt in etwa so an (wen man sich 29.vcf im vi anschaut - ab "PHOTO;" kommen die Informationen zur Kodierung und zum Typ ab dem ":" - bzw. der n. Zeile kommen die Rohdaten des Bildes.
...
BDAY;value=date:1973-06-30^M
PHOTO;ENCODING=b;TYPE=JPEG;X-ABCROP-RECTANGLE=ABClipRect_1&230&1045&2219&2219&r9Ok8Wrvif1DHww1kr1sKw==:^M
/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAA^M
AAA6ABAAMAAAABAAEAAKACAAQAAAABAAAJkKADAAQAAAABAAAMwAAAAAD/7QA4UGhvdG9zaG9w^M
IDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgMwAmQAw^M
EiAAIRAQMRAf/EAB8AAAEFA
....
Enden tut der Teil für das Bild mit einem Tag am Beginn einer Zeile (bis dahin fangen alle Daten zum Bild/Zeilen mit einem Blank an)
Ich bräuchte Hilfe beim extrahieren und abspeichern der Bildinformationen per python (wenn irgendmöglich)