成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HTML 5 canvas 圖像處理

開發 前端
前兩天無意中看了下《pro html5 programming》,發現html5竟然也能很好的支持圖像處理,在此稍稍交代一下。與matlab處理圖像類似的是,這里也是采用圖像矩陣的形式。

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

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

下面就介紹一個簡單的例子:

  1. <!DOCTYPE html>      
  2. <html>   
  3. <head>      
  4. <title>canvas圖像處理</title>     
  5. </head>     
  6. <body>     
  7. <h1>canvas</h1>     
  8. <canvas id="canvas1" width="200" height="150">是時候更換瀏覽器了<a href="http://firefox.com.cn/download/">點擊下載firefox</a></canvas>    
  9. <script>   
  10.     var canvas1=document.getElementById('canvas1');   
  11.     var context1=canvas1.getContext('2d');   
  12.     image=new Image();   
  13.     image.src="z.JPG";   
  14.     image.onload=function(){   
  15.     context1.drawImage(image,0,0);//繪制原始圖像,(0,0)表示圖像的左上角位與canvas畫布的位置   
  16.     }   
  17. </script>   
  18. <br/>   
  19. <button onclick="draw()">圖像的反轉</button>   
  20. <br/>   
  21. <canvas id="canvas2" width="200" height="150"></canvas>    
  22. <script>   
  23.     function draw(){   
  24.         var canvas2=document.getElementById('canvas2');   
  25.         var context2=canvas2.getContext('2d');   
  26.             var imagedata=context1.getImageData(0,0,image.width,image.height);   
  27.             var imagedata1=context2.createImageData(image.width,image.height);   
  28.             for(var j=0;j<image.height;j+=1)   
  29.             for(var i=0;i<image.width;i+=1){   
  30.               k=4*(image.width*j+i);   
  31.               imagedata1.data[k+0]=255-imagedata.data[k+0];   
  32.               imagedata1.data[k+1]=255-imagedata.data[k+1];   
  33.               imagedata1.data[k+2]=255-imagedata.data[k+2];   
  34.               imagedata1.data[k+3]=255;   
  35.             }   
  36.             context2.putImageData(imagedata1,0,0);   
  37.     }   
  38. </script>    
  39. </body>     
  40. </html>   
  41. <!DOCTYPE html>      
  42. <html>   
  43. <head>      
  44. <title>canvas圖像處理</title>     
  45. </head>     
  46. <body>     
  47. <h1>canvas</h1>     
  48. <canvas id="canvas1" width="200" height="150">是時候更換瀏覽器了<a href="http://firefox.com.cn/download/">點擊下載firefox</a></canvas>    
  49. <script>   
  50.     var canvas1=document.getElementById('canvas1');   
  51.     var context1=canvas1.getContext('2d');   
  52.     image=new Image();   
  53.     image.src="z.JPG";   
  54.     image.onload=function(){   
  55.     context1.drawImage(image,0,0);//繪制原始圖像,(0,0)表示圖像的左上角位與canvas畫布的位置   
  56.     }   
  57. </script>   
  58. <br/>   
  59. <button onclick="draw()">圖像的反轉</button>   
  60. <br/>   
  61. <canvas id="canvas2" width="200" height="150"></canvas>    
  62. <script>   
  63.     function draw(){   
  64.         var canvas2=document.getElementById('canvas2');   
  65.         var context2=canvas2.getContext('2d');   
  66.             var imagedata=context1.getImageData(0,0,image.width,image.height);   
  67.             var imagedata1=context2.createImageData(image.width,image.height);   
  68.             for(var j=0;j<image.height;j+=1)   
  69.             for(var i=0;i<image.width;i+=1){   
  70.               k=4*(image.width*j+i);   
  71.               imagedata1.data[k+0]=255-imagedata.data[k+0];   
  72.               imagedata1.data[k+1]=255-imagedata.data[k+1];   
  73.               imagedata1.data[k+2]=255-imagedata.data[k+2];   
  74.               imagedata1.data[k+3]=255;   
  75.             }   
  76.             context2.putImageData(imagedata1,0,0);   
  77.     }   
  78. </script>    
  79. </body>     
  80. </html>   
  81. <!DOCTYPE html>      
  82. <html>   
  83. <head>      
  84. <title>canvas圖像處理</title>     
  85. </head>     
  86. <body>     
  87. <h1>canvas</h1>     
  88. <canvas id="canvas1" width="200" height="150">是時候更換瀏覽器了<a href="http://firefox.com.cn/download/">點擊下載firefox</a></canvas>    
  89. <script>   
  90.     var canvas1=document.getElementById('canvas1');   
  91.     var context1=canvas1.getContext('2d');   
  92.     image=new Image();   
  93.     image.src="z.JPG";   
  94.     image.onload=function(){   
  95.     context1.drawImage(image,0,0);//繪制原始圖像,(0,0)表示圖像的左上角位與canvas畫布的位置   
  96.     }   
  97. </script>   
  98. <br/>   
  99. <button onclick="draw()">圖像的反轉</button>   
  100. <br/>   
  101. <canvas id="canvas2" width="200" height="150"></canvas>    
  102. <script>   
  103.     function draw(){   
  104.         var canvas2=document.getElementById('canvas2');   
  105.         var context2=canvas2.getContext('2d');   
  106.             var imagedata=context1.getImageData(0,0,image.width,image.height);   
  107.             var imagedata1=context2.createImageData(image.width,image.height);   
  108.             for(var j=0;j<image.height;j+=1)   
  109.             for(var i=0;i<image.width;i+=1){   
  110.               k=4*(image.width*j+i);   
  111.               imagedata1.data[k+0]=255-imagedata.data[k+0];   
  112.               imagedata1.data[k+1]=255-imagedata.data[k+1];   
  113.               imagedata1.data[k+2]=255-imagedata.data[k+2];   
  114.               imagedata1.data[k+3]=255;   
  115.             }   
  116.             context2.putImageData(imagedata1,0,0);   
  117.     }   
  118. </script>    
  119. </body>     
  120. </html>   

1)html5 的canvas調用

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

2)創建圖像并繪制原始圖像

  1. image=new Image();//創建image對象   
  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):創建寬高分別為x,y的圖像矩陣   
  5.    for(var j=0;j<image.height;j+=1)   
  6.     for(var i=0;i<image.width;i+=1){   
  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 原矩陣的一部分,起點為(0,0)   

下面就細說下html5圖像的儲存形式:

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

所以每兩個像素間相隔4位,計算時

  1. k=4*(image.width*j+i);為像素點(i,j)的位置,  
 
  1. imagedata1.data[k+0]表示R分量,依次類推,其中剩下的分別為G、B分量還有透明度。  

這樣上面的程序就實現了簡單的圖像的反轉功能。<BR>效果如下:

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

原文鏈接:http://www.cnblogs.com/blue-lg/archive/2011/12/23/2299019.html

  1. HTML 5和CSS3快速制作便簽特效
  2. 如何制作HTML 5的iPhone應用程序
  3. HTML 5做出讓你意想不到的幾件事
  4. HTML 5多媒體組件(視頻的使用)
  5. 看HTML 5如何創建一個圖片瀏覽器
責任編輯:張偉 來源: blue_lg的博客
相關推薦

2011-11-25 14:20:57

HTML 5

2012-06-12 09:53:14

HTML5

2012-09-24 13:49:13

HTML5CanvasJS

2012-07-26 10:40:38

HTML5

2011-11-09 10:05:26

HTML 5

2012-05-09 09:41:58

HTML5

2012-02-22 15:41:50

HTML 5

2012-02-24 15:28:36

ibmdw

2012-05-29 09:57:10

HTML5

2017-07-05 16:22:09

HTML5canvas動態

2011-07-21 15:34:36

iPhone HTML5 Canvas

2012-08-30 10:18:09

HTML5CanvasHTML5實例

2015-10-08 08:48:44

HTML5canvas動畫

2012-05-09 12:18:14

HTML5Canvas

2016-01-20 10:11:56

華麗CanvasHTML5

2011-07-18 13:35:14

HTML 5

2012-04-18 15:36:33

HTML5Canvas交互式

2012-02-23 10:32:19

HTML 5

2013-03-06 16:14:16

UCHTML5游戲引擎

2011-03-02 13:15:26

HTML 5jQuery
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区在线视频 | 亚洲午夜精品一区二区三区他趣 | 国产激情免费视频 | 亚洲精品视频一区二区三区 | 九九热精 | 在线观看中文字幕视频 | 成人免费视频在线观看 | 久久久91 | 97在线观视频免费观看 | www国产成人免费观看视频,深夜成人网 | 精品一区二区三区四区视频 | 欧美激情欧美激情在线五月 | 日韩久久精品 | 日韩激情免费 | 国产免费一区二区三区网站免费 | 久草新在线| 精品少妇一区二区三区在线播放 | 国内精品一区二区 | 国产精品综合久久 | av片免费 | 99亚洲综合 | 国产精品成人一区二区三区夜夜夜 | 99热视 | 狠狠艹 | 国产精品成人一区二区三区 | 天天操夜夜看 | 欧美日韩精品中文字幕 | 2019天天操| 成人在线观看免费 | 日韩中文字幕第一页 | 日韩在线中文字幕 | 精品国产一区二区在线 | 欧美综合久久久 | 久久久久综合 | 色婷婷亚洲国产女人的天堂 | 黄色免费观看 | 特级生活片 | av在线免费观看网站 | 久久高清亚洲 | 五月免费视频 | 欧美在线视频网站 |