【问题标题】:How to convert Uint8ClampedArray to node-like Buffer;如何将 Uint8ClampedArray 转换为类似节点的 Buffer;
【发布时间】:2017-12-18 23:54:19
【问题描述】:

我正在使用 xmlrpc 将图像发布到 wordpress 的节点 module 上工作。这 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 转换为类似于fs.readFile() 返回的Buffer

【问题讨论】:

    标签: javascript wordpress node.js


    【解决方案1】:

    使用Buffer.from,如:

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

    【讨论】:

    • 这个反过来怎么样?我有一个节点缓冲区,想要一个UInt8ClampedArray
    • @Noitidart new Uint8ClampedArray(nodeBuffer)
    猜你喜欢
    • 2020-07-17
    • 2012-01-10
    • 2013-07-19
    • 2020-08-25
    • 2015-07-03
    • 2021-05-14
    • 2019-09-04
    • 2015-05-14
    • 2017-06-16
    相关资源
    最近更新 更多