Ich möchte das angeforderte Bild von meiner REST-API in base64-Zeichenfolge analysieren.Wie in Base64 Zeichenfolge das binäre Bild aus Antwort analysieren?
Erstens ... Ich dachte, es wäre leicht, nur window.btoa()
Funktion für diesen Zweck zu verwenden.
Wenn ich versuche, es in einem solchen Teil meiner Anwendung zu tun:
.done(function(response, position) {
var texture = new Image();
texture.src = "data:image/png;base64," + window.btoa(response);
ich den nächsten Fehler haben: Uncaught InvalidCharacterError: Fehler ‚btoa‘ auf ‚Fenster‘ auszuführen: Die Zeichenfolge codiert sein, enthält Zeichen außerhalb des Latin1-Bereichs.
Wie ich hier lesen: javascript atob returning 'String contains an invalid character'
Das Problem tritt auf, weil die newlines in the response
und deshalb window.btoa()
gescheitert. Jedes binäre Bildformat wird natürlich Zeilenumbrüche haben ... Aber wie von dem Link oben war der Vorschlag, diese Zeichen zu entfernen/ersetzen - ist ein schlechter Vorschlag für mich, denn wenn einige Zeichen aus dem binären Bild zu entfernen/ersetzen wird es einfach beschädigt sein.
Natürlich beziehen sich die möglichen Alternativen zu dem API-Design: - eine Funktion hinzuzufügen, die Base64-Darstellung zurückkehren - eine Funktion hinzuzufügen, die URL zum Bild zurückkehren
Wenn ich nicht reparieren Ich werde die Base64-Darstellung vom Server zurückgeben, aber ich mag das nicht.
Gibt es einen Weg, um mein Problem mit der Handhabung von Binärbild aus der Antwort zu lösen, wie es oben im Teil des Screenshots gezeigt wird, nicht wahr?
Was verwenden Sie API Seite? – FabianCook
@FabianCook Wo genau? Wo habe ich vorgeschlagen, API für die Rückgabe von Base64/URL oder wo? Wenn du mich sorgfältig gelesen hast, möchte ich einen Weg finden, es nicht zu benutzen und zu versuchen, einen anderen Weg/Trick zu benutzen. Base64 Antwort von der Server-Seite zu machen - kein Problem, aber ich habe den Wunsch, so zu finden, um es als ein Binärbild zu behandeln. –
Ahh okay. Wird sich umsehen. Halten. – FabianCook