2014-01-30 51 views
2

我正在使用xmlrpc将图像发布到wordpress的节点module上工作。 IMGRPC后的 接受原始图像数据并通过wp.uploadFile uri提交。我已经使用映像文件成功测试方法在节点:如何将Uint8ClampedArray转换为节点状缓冲区;

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)}) 

如何转换Uint8ClampedArrayimgDataBuffer类似于由fs.readFile()返回的一个?

回答

0

使用Buffer.from,如:

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