Обработка ответа изображения /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.

Другие вопросы по тегам