2011-05-17 23 views
2

我有我的像素數組的HTML5畫布像素數組對象。我想將其轉換成一個整數數組,並把它傳遞給一個C或C++方法本數組轉換爲比特,並且將其保存爲JPEG圖像如何將畫布像素數組傳遞給C++代碼並將其保存爲jpeg?

var intPixArray = new Array(canavsPixelArray.length); 
var k = 0; 
for(var i = 0; i <img.height; i++){ 

    for(var j = 0; j <img.width; j++){ 

     intPixArray[k] = canvaspixel[k]; 
     intPixArray[k+1] = canvaspixel[k+1]; 
     intPixArray[k+2] = canvaspixel[k+2]; 
     intPixArray[k+3] = canvaspixel[k+3]; 
     k+=4; 
    } 
} 

這INT像素陣列我要轉換成以JavaScript位或者在C/C++端將其寫入文件。

這怎麼可能?

我正在研究webOS混合應用程序。

+1

據我所知,你可以直接從canvas中保存爲jpeg。 (除非我錯了;)在保存爲jpeg之前,您是否有理由將圖像傳遞給C? – 2011-05-17 06:12:17

+0

是的,因爲canvas.toDataURL在webOS中不受支持,所以我不能獲得畫布的base64編碼字符串... – 2011-05-17 07:38:29

+4

標準C++沒有任何功能來保存jpegs,您將需要找到一個庫(提示:libjpeg)或自己編碼一個(提示:不要那樣做) – Arelius 2011-05-19 22:49:47

回答

0

阿德里安是正確的,你可以使用JavaScript來改變成一個JPEG:

Capture HTML Canvas as gif/jpg/png/pdf?

var canvas = document.getElementById("mycanvas"); 
var context = canvas.getContext("2d"); 
var img  = canvas.toDataURL("image/jpeg"); 

然後,您可以把它寫在DOM

document.write('<img src="'+img+'"/>'); 

或Base64編碼如果你真的想把它傳遞給你的C++。

相關問題