最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何将Uint8ClampedArray转换为类似节点的Buffer;

运维笔记admin14浏览0评论

如何将Uint8ClampedArray转换为类似节点的Buffer;

如何将Uint8ClampedArray转换为类似节点的Buffer;

我正在使用一个节点module,它使用xmlrpc将图像发布到wordpress。 postIMGRPC方法接受原始图像数据并通过wp.uploadFile uri提交。我已经使用图像文件在节点中成功测试了该方法:

  var imgData;
  fs.readFile("anyImage.jpg", function(e,d){  imgData = d  }   );
  wp.postIMGRPC("anyImage.jpg", imgData, 1)
      .then(function(r){console.log(r)})

现在,我希望能够在客户端javascript中获取画布的imgData,并通过我的node.js模块以相同的方式提交它:

  var c=document.getElementById("myCanvas");
  var ctx=c.getContext("2d");
  var img=document.getElementById("myImg");
  ctx.drawImage(img,0,0);

  var imgData = ctx.getImageData(0,0,250,300);
  var data = imgData.data;

但是,当我尝试将数据(类型为Uint8ClampedArray)传递给我的节点模块时,上传的文件是一个空白图像。我试过了:

  wp.postIMGRPC("anyImage.jpg", imgDataFromJS, 1)
      .then(function(r){console.log(r)})

以及

 buf = new Buffer(imgDataFromJS)
 wp.postIMGRPC("anyImage.jpg", buf, 1)
      .then(function(r){console.log(r)})

如何将Uint8ClampedArrayimgData转换为类似于Buffer返回的fs.readFile()

回答如下:

使用Buffer.from,如:

...
var imgData = ctx.getImageData(0,0,250,300);
var data = imgData.data;
var buf = Buffer.from(data);
发布评论

评论列表(0)

  1. 暂无评论