Okay, im Grunde habe ich ein einfaches System zum Hochladen von Bildern entwickelt. Der Benutzer wählt ein lokales Bild aus (mithilfe der HTML5 File / FileReader-API) und kann es zuschneiden, bevor das Ergebnis bestätigt wird.
Das Endergebnis wird in einer Zeichenfläche angezeigt, um es an den Server zu senden, den ich für DataURL verwende. Der Backend-Server ist ein NodeJS-Server, der dann einen REST-Aufruf an einen Java-Server machen muss, der aus den Daten eine Image-Datei erstellt und auf der Festplatte speichert.
Die Ergebnisse von toDataURL haben die Form: Daten: image / png; base64, ENCODED DATA.
Was würde ich auf dem Java-Server brauchen, um die Zeichenfolge in die richtige Binärdarstellung zu konvertieren?
Sie müssen data:image/png;base64,
part und base 64 decode den Rest entfernen .
Sobald Sie Base64-decodieren, haben Sie das Binärbild in Form einer PNG-Datei. In diese SO-Frage finden Sie Einzelheiten zum Dekodieren einer Base64-Zeichenfolge in Byte.
Sie müssen Platzhalter durch ersetzen, wenn Ihr base64Image Leerzeichen enthält, dann müssen Sie die Daten entfernen: image / png; base64, vom Anfang des base64Image. Wenn Sie das Leerzeichen nicht ersetzen, können Sie das richtige Bild nicht erhalten. dann können Sie Base64 dekodieren
yourBase64String = yourBase64String.replace ('', '+');
yourBase64String = yourBase64String.substring (22);
Tags und Links javascript java canvas