91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML 5中怎么利用canvas對圖像進行處理

發布時間:2021-07-22 14:13:15 來源:億速云 閱讀:156 作者:Leah 欄目:web開發

這篇文章將為大家詳細講解有關HTML 5中怎么利用canvas對圖像進行處理,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

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

<!DOCTYPE html>      <html>   <head>      <title>canvas圖像處理</title>     </head>     <body>     <h2>canvas</h2>     <canvas id="canvas1" width="200" height="150">是時候更換瀏覽器了<a href="http://firefox.com.cn/download/">點擊下載firefox</a></canvas>    <script>       var canvas1=document.getElementById('canvas1');       var context1=canvas1.getContext('2d');       image=new Image();       image.src="z.JPG";       image.onload=function(){       context1.drawImage(image,0,0);//繪制原始圖像,(0,0)表示圖像的左上角位與canvas畫布的位置       }   </script>   <br/>   <button onclick="draw()">圖像的反轉</button>   <br/>   <canvas id="canvas2" width="200" height="150"></canvas>    <script>       function draw(){           var canvas2=document.getElementById('canvas2');           var context2=canvas2.getContext('2d');               var imagedata=context1.getImageData(0,0,image.width,image.height);               var imagedata1=context2.createImageData(image.width,image.height);               for(var j=0;j<image.height;j+=1)               for(var i=0;i<image.width;i+=1){                 k=4*(image.width*j+i);                 imagedata1.data[k+0]=255-imagedata.data[k+0];                 imagedata1.data[k+1]=255-imagedata.data[k+1];                 imagedata1.data[k+2]=255-imagedata.data[k+2];                 imagedata1.data[k+3]=255;               }               context2.putImageData(imagedata1,0,0);       }   </script>    </body>     </html>   <!DOCTYPE html>      <html>   <head>      <title>canvas圖像處理</title>     </head>     <body>     <h2>canvas</h2>     <canvas id="canvas1" width="200" height="150">是時候更換瀏覽器了<a href="http://firefox.com.cn/download/">點擊下載firefox</a></canvas>    <script>       var canvas1=document.getElementById('canvas1');       var context1=canvas1.getContext('2d');       image=new Image();       image.src="z.JPG";       image.onload=function(){       context1.drawImage(image,0,0);//繪制原始圖像,(0,0)表示圖像的左上角位與canvas畫布的位置       }   </script>   <br/>   <button onclick="draw()">圖像的反轉</button>   <br/>   <canvas id="canvas2" width="200" height="150"></canvas>    <script>       function draw(){           var canvas2=document.getElementById('canvas2');           var context2=canvas2.getContext('2d');               var imagedata=context1.getImageData(0,0,image.width,image.height);               var imagedata1=context2.createImageData(image.width,image.height);               for(var j=0;j<image.height;j+=1)               for(var i=0;i<image.width;i+=1){                 k=4*(image.width*j+i);                 imagedata1.data[k+0]=255-imagedata.data[k+0];                 imagedata1.data[k+1]=255-imagedata.data[k+1];                 imagedata1.data[k+2]=255-imagedata.data[k+2];                 imagedata1.data[k+3]=255;               }               context2.putImageData(imagedata1,0,0);       }   </script>    </body>     </html>   <!DOCTYPE html>      <html>   <head>      <title>canvas圖像處理</title>     </head>     <body>     <h2>canvas</h2>     <canvas id="canvas1" width="200" height="150">是時候更換瀏覽器了<a href="http://firefox.com.cn/download/">點擊下載firefox</a></canvas>    <script>       var canvas1=document.getElementById('canvas1');       var context1=canvas1.getContext('2d');       image=new Image();       image.src="z.JPG";       image.onload=function(){       context1.drawImage(image,0,0);//繪制原始圖像,(0,0)表示圖像的左上角位與canvas畫布的位置       }   </script>   <br/>   <button onclick="draw()">圖像的反轉</button>   <br/>   <canvas id="canvas2" width="200" height="150"></canvas>    <script>       function draw(){           var canvas2=document.getElementById('canvas2');           var context2=canvas2.getContext('2d');               var imagedata=context1.getImageData(0,0,image.width,image.height);               var imagedata1=context2.createImageData(image.width,image.height);               for(var j=0;j<image.height;j+=1)               for(var i=0;i<image.width;i+=1){                 k=4*(image.width*j+i);                 imagedata1.data[k+0]=255-imagedata.data[k+0];                 imagedata1.data[k+1]=255-imagedata.data[k+1];                 imagedata1.data[k+2]=255-imagedata.data[k+2];                 imagedata1.data[k+3]=255;               }               context2.putImageData(imagedata1,0,0);       }   </script>    </body>     </html>

1)html5 的canvas調用

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

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

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

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

var imagedata=context1.getImageData(0,0,image.width,image.height);   //getImageData(x1,y1,x2,y2)獲取圖像的rgba矩陣,其中截取圖像的大小為(x1,y1)-(x2,y2) 的矩陣   var imagedata1=context2.createImageData(image.width,image.height);   //createImageData(x,y):創建寬高分別為x,y的圖像矩陣      for(var j=0;j<image.height;j+=1)       for(var i=0;i<image.width;i+=1){                 k=4*(image.width*j+i);             imagedata1.data[k+0]=255-imagedata.data[k+0];             imagedata1.data[k+1]=255-imagedata.data[k+1];             imagedata1.data[k+2]=255-imagedata.data[k+2];                     imagedata1.data[k+3]=255;           }       context2.putImageData(imagedata1,0,0);   //putImageData(image,0,0):將image矩陣的添加為context 原矩陣的一部分,起點為(0,0)   }

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

HTML 5中怎么利用canvas對圖像進行處理

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

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

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

關于HTML 5中怎么利用canvas對圖像進行處理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹿泉市| 潞城市| 阜宁县| 曲靖市| 饶河县| 普兰县| 台江县| 满城县| 深泽县| 霍山县| 洮南市| 道孚县| 平果县| 平湖市| 盘锦市| 连云港市| 郸城县| 抚远县| 塔城市| 江城| 康定县| 开江县| 隆德县| 西城区| 清徐县| 上杭县| 威信县| 广宁县| 霍邱县| 包头市| 平凉市| 互助| 景德镇市| 彩票| 凤台县| 奉贤区| 柘荣县| 岳阳市| 丹阳市| 安阳市| 吉林省|