2014-01-30 45 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); 
相關問題