首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用本机Node库将图像写入缓冲区?

如何使用本机Node库将图像写入缓冲区?
EN

Stack Overflow用户
提问于 2016-03-07 19:28:14
回答 2查看 2.8K关注 0票数 0

我对JavaScript和Node非常陌生。我有各种图像URL,我想缓冲。我已经尝试了请求npm模块,但希望为我想要实现的是一个较低级别的库。

例如:1987.jpg

我看到许多示例建议使用请求模块或将文件保存到磁盘的示例。但是,我找不到一个HTTP请求示例,它简单地缓冲图像以便传递给另一个函数。它需要一个“结束”事件,所以我上传缓冲图像数据的信心在另一步。是否有一个样本模式或“如何”,对此,有人可以提供?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-07 21:44:52

这是本土化的方式:

代码语言:javascript
复制
var http=require('http'), imageBuffer;

http.get(
  'http://www.kame.net/img/kame-anime-small.gif',
  function(res) {
    var body=new Buffer(0);

    if (res.statusCode!==200) {
      return console.error('HTTP '+res.statusCode);
    }

    res.on('data', function(chunk) {
      body=Buffer.concat([body, chunk]);
    });

    res.on('end', function() {
      imageBuffer=body;
    });

    res.on('error', function(err) {
      console.error(err);
    });
  }
);

// Small webserver serving the image at http://127.0.0.1:4567
http.createServer(function(req, res) {
  res.write(imageBuffer || 'Please reload page');
  res.end();
}).listen(4567, '127.0.0.1');

并使用请求(二进制响应的encoding:null):

代码语言:javascript
复制
var request=require('request'), imageBuffer;

request({
  uri: 'http://www.kame.net/img/kame-anime-small.gif',
  encoding: null
}, function(err, res, body) {
  if (err) {
    return console.error(err);
  } else if (res.statusCode!==200) {
    return console.error('HTTP '+res.statusCode);
  }
  imageBuffer=body;
});

// Small webserver serving the image at http://127.0.0.1:4567
require('http').createServer(function(req, res) {
  res.write(imageBuffer || 'Please reload page');
  res.end();
}).listen(4567, '127.0.0.1');
票数 3
EN

Stack Overflow用户

发布于 2016-03-07 22:10:42

下面是一个简单的示例,它使用http响应具有的内置流:

代码语言:javascript
复制
var http = require('http');
var fs = require('fs');

var file = fs.createWriteStream("test.png");
var request = http.get("some URL to an image", function(response) {
  response.pipe(file);
});

我自己运行了这个程序,并成功地从外部网站下载了一个图像,并将其保存到一个文件中,然后将文件加载到浏览器中以查看相同的图像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35852286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档