FreeTimeCoder82 / node-red-contrib-pushsafer

A Pushsafer API wrapper for Node-RED
MIT License
1 stars 2 forks source link

Allow direct input of base64 encoded images #2

Closed LasseSchnepel closed 4 years ago

LasseSchnepel commented 4 years ago

Hallo,

vielen Dank für diese Node für Node-Red, die bei mir ganz hervorragend funktioniert. Leider erlaubt sie nicht, dass man ein Bild was schon im Node-Red msg.payload/image steht, direkt einzubinden.

Da mir der Weg über eine temporäre Datei zu umständlich ist, habe ich die Funktionalität erweitert. Fängt das "image" mit "data:" an, so wird der Inhalt direkt übernommen.

Viele Grüße, Lasse

PS: Ich hoffe mit Github habe ich alles richtig gemacht ;-)

FreeTimeCoder82 commented 4 years ago

Hallo Lasse, hast Du das mal ausprobiert? Du hast die Prüfung auf das "data:" beim Erstellen des Images eingebaut. Das müsste doch wenn davor passieren, also so dass gar kein Image erstellt werden muss. Die Prüfung würde ich dann direkt beim Eintreffen des Message Objektes machen und falls "payload" bereits ein Bild enthält einfach dies nehmen anstatt ein Bild zu erstellen.

Schau mal auf die geschlossenen Issues des Repos. Da ist ein Issue von jemand anderem gemeldet worden. Geht um genau das selbe. Ich habe es als Featurerequest aufgenommen. Baue gerade an v2 des Nodes. Werde dort eine entsprechende Option in die Templates einbauen, die das ermöglichen wird. imagetemplate

Viele Grüße, Oliver

LasseSchnepel commented 4 years ago

Hallo Oliver,

das Bild wird ja - wenn ich den Code richtig verstanden habe - erst im else-Zwei durch den Aufruf von await base64encoder(imagePath, options); aus der Datei gelesen. In meinem Vorschlag passiert dies nur, wenn der Dateipfad nicht mit "data:" anfängt.

Bei der node, die ich in Node-RED heruntergeladen habe, gab es komischerweise nur andere Dateien (pushsafer.js). Dort habe ich die gleiche Änderung in der gleichen Funktion gemacht, bei mir funktionierts.

Mit dem Vorteil, dass es für alle drei möglichen Bilder funktioniert und das payload weiterhin für den Text genutzt werden kann.

Viele Grüße, Lasse