這篇文章給大家分享的是有關(guān)Canvas像素處理之如何改變透明度的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)建站2013年至今,先為化隆等服務(wù)建站,化隆等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為化隆企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
一 定義和用法
getImageData()方法返回 ImageData 對象,該對象拷貝了畫布指定矩形的像素數(shù)據(jù)。
注意:ImageData對象不是圖像,它規(guī)定了畫布上一個部分(矩形),并保存了該矩形內(nèi)每個像素的信息。
對于ImageData對象中的每個像素,都存在著四方面的信息,即RGBA值:
R - 紅色(0-255)
G - 綠色(0-255)
B - 藍色(0-255)
A - alpha 通道(0-255; 0 是透明的,255 是完全可見的)
color/alpha 信息以數(shù)組形式存在,并存儲于 ImageData 對象的 data 屬性中。
提示:在操作完成數(shù)組中的 color/alpha 信息之后,您可以使用 putImageData() 方法將圖像數(shù)據(jù)拷貝回畫布上。
二 代碼
<!DOCTYPE html> <html> <head> <meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" /> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title> 改變透明度 </title> </head> <body> <h3> 改變透明度 </h3> <canvas id="mc" width="600" height="460" style="border:1px solid black"></canvas> <script type="text/javascript"> // 獲取canvas元素對應(yīng)的DOM對象 var canvas = document.getElementById('mc'); // 獲取在canvas上繪圖的CanvasRenderingContext2D對象 var ctx = canvas.getContext('2d'); var image = new Image(); image.src = "test.png"; image.onload = function() { // 用帶透明度參數(shù)的方法繪制圖片 drawImage(image , 124 , 20 , 0.4); } var drawImage = function(image , x , y , alpha) { // 繪制圖片 ctx.drawImage(image , x , y); // 獲取從x、y開始,寬為image.width、高為image.height的圖片數(shù)據(jù) // 也就是獲取繪制的圖片數(shù)據(jù) var imgData = ctx.getImageData(x , y , image.width , image.height); for (var i = 0 , len = imgData.data.length ; i < len ; i += 4 ) { // 改變每個像素的透明度 imgData.data[i + 3] = imgData.data[i + 3] * alpha; } // 將獲取的圖片數(shù)據(jù)放回去。 ctx.putImageData(imgData , x , y); } </script> </body> </html>
三 運行結(jié)果
感謝各位的閱讀!關(guān)于“Canvas像素處理之如何改變透明度”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網(wǎng)頁標題:Canvas像素處理之如何改變透明度
文章轉(zhuǎn)載:http://jinyejixie.com/article2/ppisic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、企業(yè)網(wǎng)站制作、網(wǎng)站排名、網(wǎng)站內(nèi)鏈、全網(wǎng)營銷推廣、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)