天天看點

Canvas與Image互相轉換

在上周的Mozilla Web開發 會議,最後我們花了大半天的時間讨論未來的Mozilla市場應用。Instagram是近期最火爆的移動應用,以10億美元的天價賣給了FaceBook。

我不介意賺取一些外快,是以我決定建立一個Instagram樣式的應用(以後将會分享出來)

本文向您展示怎樣轉換Image為canvas,以及canvas如何提取出一個Image。

轉換 Image為 Canvas

要把圖檔轉換為Canvas(畫闆,畫布),可以使用canvas元素 context 的drawImage方法:

// 把image 轉換為 canvas對象  

function convertImageToCanvas(image) {  

    // 建立canvas DOM元素,并設定其寬高和圖檔一樣   

    var canvas = document.createElement("canvas");  

    canvas.width = image.width;  

    canvas.height = image.height;  

    // 坐标(0,0) 表示從此處開始繪制,相當于偏移。  

    canvas.getContext("2d").drawImage(image, 0, 0);  

    return canvas;  

}  

轉換  Canvas 為 Image

假設圖像已經在canvas上處理好,那麼可以使用以下方法,把canvas轉變為圖檔Image對象。

// 從 canvas 提取圖檔 image  

function convertCanvasToImage(canvas) {  

    //新Image對象,可以了解為DOM  

    var image = new Image();  

    // canvas.toDataURL 傳回的是一串Base64編碼的URL,當然,浏覽器自己肯定支援  

    // 指定格式 PNG  

    image.src = canvas.toDataURL("image/png");  

    return image;  

額!圖像image和canvas的互相轉換比你想象的還要容易,以後我将向你示範不同的圖像處理技術,相信在未來你肯定能用這些技術賺到大錢。

繼續閱讀