日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
HTML 5 canvas 圖像處理

前兩天無意中看了下《pro html5 programming》,發(fā)現(xiàn)html5竟然也能很好的支持圖像處理,在此稍稍交代一下。

創(chuàng)新互聯(lián)建站10多年企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)木托盤等多個(gè)領(lǐng)域擁有豐富的網(wǎng)站運(yùn)維經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

與matlab處理圖像類似的是,這里也是采用圖像矩陣的形式。

下面就介紹一個(gè)簡(jiǎn)單的例子:

 
 
 
 
  1.       
  2.    
  3.       
  4. canvas圖像處理     
  5.      
  6.      
  7. canvas

         
  8. 是時(shí)候更換瀏覽器了點(diǎn)擊下載firefox    
  9.    

  10.    
  11. 圖像的反轉(zhuǎn)   

  12.    
  13.     
  14.     
  15.      
  16.    
  17.       
  18.    
  19.       
  20. canvas圖像處理     
  21.      
  22.      
  23. canvas

         
  24. 是時(shí)候更換瀏覽器了點(diǎn)擊下載firefox    
  25.    

  26.    
  27. 圖像的反轉(zhuǎn)   

  28.    
  29.     
  30.     
  31.      
  32.    
  33.       
  34.    
  35.       
  36. canvas圖像處理     
  37.      
  38.      
  39. canvas

         
  40. 是時(shí)候更換瀏覽器了點(diǎn)擊下載firefox    
  41.    

  42.    
  43. 圖像的反轉(zhuǎn)   

  44.    
  45.     
  46.     
  47.      
  48.    

1)html5 的canvas調(diào)用

 
 
 
 
  1. var canvas1=document.getElementById('canvas1');//獲取canvas元素   
  2. var context1=canvas.getContext('2d');//此時(shí)獲取到canvas圖像上下文   
  3.  

2)創(chuàng)建圖像并繪制原始圖像

 
 
 
 
  1. image=new Image();//創(chuàng)建image對(duì)象   
  2. image.src="z.JPG";//image的地址   
  3. image.onload=function(){   
  4. context1.drawImage(image,0,0);//繪制原始圖像,(0,0)表示圖像的左上角位與canvas畫布的位置   
  5. }   
  6.  

3)獲取圖像的rgba矩陣并操作

 
 
 
 
  1. var imagedata=context1.getImageData(0,0,image.width,image.height);   
  2. //getImageData(x1,y1,x2,y2)獲取圖像的rgba矩陣,其中截取圖像的大小為(x1,y1)-(x2,y2) 的矩陣   
  3. var imagedata1=context2.createImageData(image.width,image.height);   
  4. //createImageData(x,y):創(chuàng)建寬高分別為x,y的圖像矩陣   
  5.    for(var j=0;j
  6.     for(var i=0;i
  7.               k=4*(image.width*j+i);   
  8.           imagedata1.data[k+0]=255-imagedata.data[k+0];   
  9.           imagedata1.data[k+1]=255-imagedata.data[k+1];   
  10.           imagedata1.data[k+2]=255-imagedata.data[k+2];   
  11.                   imagedata1.data[k+3]=255;   
  12.         }   
  13.     context2.putImageData(imagedata1,0,0);   
  14. //putImageData(image,0,0):將image矩陣的添加為context 原矩陣的一部分,起點(diǎn)為(0,0)   

下面就細(xì)說下html5圖像的儲(chǔ)存形式:

矩陣中每個(gè)像素點(diǎn)有四個(gè)通道分別儲(chǔ)存r/g/b/a的值。(四個(gè)值按序連續(xù)的排列,為一維矩陣)

所以每?jī)蓚€(gè)像素間相隔4位,計(jì)算時(shí)

 
 
 
 
  1. k=4*(image.width*j+i);為像素點(diǎn)(i,j)的位置,  

 

  
 
 
 
  1. imagedata1.data[k+0]表示R分量,依次類推,其中剩下的分別為G、B分量還有透明度。  

這樣上面的程序就實(shí)現(xiàn)了簡(jiǎn)單的圖像的反轉(zhuǎn)功能。
效果如下:

另外需要注意的是,getImageData()函數(shù)可能會(huì)涉及到跨域的problem,所以建議配置apache環(huán)境并將該html放置到其根目錄下進(jìn)行操作。


當(dāng)前題目:HTML 5 canvas 圖像處理
標(biāo)題來源:http://m.5511xx.com/article/djccidc.html