一 圖片預覽
HTML5給web開發(fā)帶來很多好東西,可以說,它將開創(chuàng)新一代web開發(fā)。
其中canvas就是它帶來的東西之一,canvas非常強大,可以做到很多東西。這里只是展示一個簡單的canvas效果。如下圖:
二 原理介紹
在代碼中通過ctx.getImageData(0,0,width,height);獲取canvas里面的p_w_picpathdata對象,而這個對象就是這個效果實現(xiàn)的關鍵。
通過p_w_picpathdata.data來獲取一個數(shù)組,這個數(shù)組的length是canvas像素數(shù)量的四倍,其中每四個項代表一個像素。在每四個項里,他們一次代表rgba,rgb就很明顯了,而a就代表透明,當a為255的時候完全不透明,當a為0的時候就是透明的。而這次的效果無需用到透明,所以沒對這個進行操作。
最后通過ctx.putImageData(p_w_picpathData,0,0);把處理過的Imagedata放回去。請注意看代碼以及注釋。
window.onload = function() {
var photo=document.getElementById("photo");
photo.onload=function(){//把圖像處理函數(shù)添加為目標圖片的onload時間,因為只有圖片已經(jīng)加載,才能用canvas對其進行操作
var cav=document.getElementById("cav");//獲取canvas對象
var ctx=cav.getContext("2d");//通過這個函數(shù)獲取canvas的上下文
var width=parseInt(cav.getAttribute("width"));
var height=parseInt(cav.getAttribute("height"));
ctx.drawImage(this,0,0);//將圖片“畫到”canvas上去
var p_w_picpathData=ctx.getImageData(0,0,width,height);//取得canvas的p_w_picpathData,我們就是通過這個對canvas進行像素操作的
var data=p_w_picpathData.data;
for(var i=0,length=data.length;i<length;i=i+4)//data里面每4個數(shù)據(jù)項代表一個像素
{
data[i]=255-data[i];//紅
data[i+1]=255-data[i+1];//綠
data[i+2]=255-data[i+2];//藍
}
ctx.putImageData(p_w_picpathData,0,0);//把p_w_picpathData再放回canvas
}
photo.src="canvas-women.jpg";
}
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:html5解析圖片-創(chuàng)新互聯(lián)
分享鏈接:http://chinadenli.net/article34/cophse.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、軟件開發(fā)、小程序開發(fā)、關鍵詞優(yōu)化、服務器托管、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容