JS Canvas與Image互相轉(zhuǎn)換
原文演示: JavaScript Canvas Image Conversion Demo
在上周的Mozilla Web開發(fā) 會(huì)議,最后我們花了大半天的時(shí)間討論未來的Mozilla市場(chǎng)應(yīng)用。Instagram是近期最火爆的移動(dòng)應(yīng)用,以10億美元的天價(jià)賣給了FaceBook。
我不介意賺取一些外快,所以我決定創(chuàng)建一個(gè)Instagram樣式的應(yīng)用(以后將會(huì)分享出來)
本文向您展示怎樣轉(zhuǎn)換Image為canvas,以及canvas如何提取出一個(gè)Image。
轉(zhuǎn)換 Image為 Canvas
要把圖片轉(zhuǎn)換為Canvas(畫板,畫布),可以使用canvas元素 context 的drawImage方法:
// 把image 轉(zhuǎn)換為 canvas對(duì)象
function convertImageToCanvas(image) {
// 創(chuàng)建canvas DOM元素,并設(shè)置其寬高和圖片一樣
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
// 坐標(biāo)(0,0) 表示從此處開始繪制,相當(dāng)于偏移。
canvas.getContext("2d").drawImage(image, 0, 0);
return canvas;
}
轉(zhuǎn)換 Canvas 為 Image
假設(shè)圖像已經(jīng)在canvas上處理好,那么可以使用以下方法,把canvas轉(zhuǎn)變?yōu)閳D片Image對(duì)象。
// 從 canvas 提取圖片 image
function convertCanvasToImage(canvas) {
//新Image對(duì)象,可以理解為DOM
var image = new Image();
// canvas.toDataURL 返回的是一串Base64編碼的URL,當(dāng)然,瀏覽器自己肯定支持
// 指定格式 PNG
image.src = canvas.toDataURL("image/png");
return image;
}
額!圖像image和canvas的互相轉(zhuǎn)換比你想象的還要容易,以后我將向你演示不同的圖像處理技術(shù),相信在未來你肯定能用這些技術(shù)賺到大錢。