Обработка ответа изображения /jpeg и отображение в пользовательском интерфейсе с помощью base64-кодирования в NodeJS
Используя модуль запросов NodeJs, я сделал запрос к серверу и получил такой ответ:
response.body = "����JFIF��C..."
response.headers["content-type"] = image/jpeg
Я пытаюсь преобразовать его в base64 кодировать с помощью кода ниже:
let imageData = "data:" + response.headers["content-type"] + ";base64," + new Buffer(response.body).toString('base64');
// "data:image/jpg;base64,77+977+977+977+9ABBKRklGAAEBAAABAAEAAO...";
После этого установите для него тег, который будет отображаться в пользовательском интерфейсе следующим образом:
var image = new Image();
image.src = response.imageData;
Но пользовательский интерфейс показывает разрыв изображения, как:
Если я перехожу к URL-адресу запроса напрямую, я все равно вижу правильное изображение. Я думаю, что с методом convert base64 что-то не так, но я не знаю, как это исправить.
Пожалуйста, помогите мне. Спасибо.
1 ответ
Я нашел ошибку. Просто используйте запрос с кодировкой null, и все работает гладко.
var request = require('request').defaults({ encoding: null });
Ссылка: Node.js получает изображение из сети и кодирует с помощью base64.