将base64编码的图像显示为HTML,而不向服务器发出GET请求

时间:2016-07-18 19:34:56

标签: javascript html image socket.io base64

我在服务器上有一张图片。我使用Socket.io每5秒读取一次PNG图像。我正在将图像转换为base64,然后将base64字符串发送到客户端。代码如下:

var imageUpload = function(){
    fs.readFile('image1.png', 'base64', function(err, buf){
      socket.emit('image upload', { image: true, buffer: buf });
      setTimeout(imageUpload, 5000);
    });
  };

在客户端,我从socket获取数据,然后调用函数displayImage(),它将base64图像显示为html页面。

var displayImage = function(data){
    var URL = 'data:image/png;base64,'+data.buffer;
    document.querySelector("#uploaded-image").src = URL;
  }

但问题是,它每次都会向服务器发出GET请求。

当我将图像作为base64字符串发送时,有没有办法将该字符串显示为图像而不发出GET请求,因为发送文件然后再次请求同一文件没有意义通过GET?

  

PS:我正在开展一个我需要实时视频流的项目。就像我一样   无法获得视频流,我正在处理生成的实时图像   由研究相机在缓冲循环中。我想要显示它   50毫秒间隔的图像,因此它看起来像一个实时视频   流。所以我只想从服务器发送那一堆图像   持续不做GET请求。

0 个答案:

没有答案