Подтвердить что ты не робот

Nodejs - Как читать и выводить изображение в формате jpg?

Я пытаюсь найти пример того, как читать jpeg-изображение, а затем показывать изображение.

var http = require('http'), fs = require('fs');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});

fs.readFile('image.jpg', function (err, data) {
  if (err) throw err;
  res.write(data);
});

res.end();
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

Пробовал следующий код, но я думаю, что кодировка должна быть установлена ​​в качестве объекта буфера, когда я консолью данных.

4b9b3361

Ответ 1

Вот как вы можете прочитать все содержимое файла, и если все сделано успешно, запустите веб-сервер, который отображает изображение JPG в ответ на каждый запрос:

var http = require('http')
  , fs = require('fs');

fs.readFile('image.jpg', function(err, data) {
  if (err) throw err; // Fail if the file can't be read.
  http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'image/jpeg'});
    res.end(data); // Send the file data to the browser.
  }).listen(8124);
  console.log('Server running at http://localhost:8124/');
});

Обратите внимание, что сервер запускается функцией обратного вызова "readFile", а заголовок ответа имеет Content-Type: image/jpeg.

[Изменить] Вы даже можете вставлять изображение на HTML-страницу напрямую, используя <img> с URI данных источник. Например:

  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('<html><body><img src="data:image/jpeg;base64,')
  res.write(Buffer.from(data).toString('base64'));
  res.end('"/></body></html>');