Обработка ответа изображения / jpeg и отображение в пользовательском интерфейсе с помощью base64-кодирования в NodeJS - PullRequest
0 голосов
/ 19 декабря 2018

Используя модуль запроса 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;

Но в пользовательском интерфейсе отображается изображение разрыва, например: enter image description here

ЕслиЯ перехожу к URL запроса напрямую, я все еще вижу правильное изображение.Я думаю, что с методом convert base64 что-то не так, но я не знаю, как это исправить.

Пожалуйста, помогите мне.Спасибо.

1 Ответ

0 голосов
/ 19 декабря 2018

Я нашел ошибку.Просто используйте request с кодировкой null, и все работает гладко.

var request = require('request').defaults({ encoding: null });

Ref: Node.js получает изображение из сети и кодирует с base64

...