Я хочу проанализировать запрошенное изображение из моего REST API в строку base64.
Во-первых... Я думал, было бы просто, просто использовать функцию window.btoa()
для этой цели.
Когда я пытаюсь сделать это в такой части моего приложения:
.done( function( response, position ) {
var texture = new Image();
texture.src = "data:image/png;base64," + window.btoa( response );
У меня есть следующая ошибка: Uncaught InvalidCharacterError: не удалось выполнить 'btoa' в 'Window': строка, которая должна быть закодирована, содержит символы за пределами диапазона Latin1.
Как я читал здесь: javascript atob возвращает "String содержит недопустимый символ"
Проблема возникает из-за newlines in the response
и почему window.btoa()
не удалось.
Любой формат двоичного изображения, конечно, будет иметь новые строки... Но поскольку из ссылки выше предложение было удалить/заменить эти символы - это плохое предложение для меня, потому что, если удалить или заменить некоторые символы из двоичного образа, это будет просто поврежден.
Конечно, возможные альтернативы относятся к дизайну API: - добавить некоторую функцию, возвращающую представление base64 - добавить некоторую функцию, возвращающую url к изображению
Если я не буду его исправлять, я верну свое представление base64 с сервера, но мне не нравится такой способ.
Существует ли какой-то способ решить мою проблему с обработкой двоичного изображения из ответа, как показано выше в части скриншота, не так ли?