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

溫馨提示×

溫馨提示×

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

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

怎么用canvas實現圖片濾鏡效果

發布時間:2022-02-28 15:01:28 來源:億速云 閱讀:164 作者:小新 欄目:web開發

小編給大家分享一下怎么用canvas實現圖片濾鏡效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1.獲取圖像數據

img.src = ’https://cache.yisu.com/upload/information/20220117/488/19974.jpg’;

canvas.width = img.width;

canvas.height = img.height;

var context = canvas.getContext(“2d”);

context.drawImage(img, 0, 0);

var canvasData = context.getImageData(0, 0, canvas.width, canvas.height);

2.設置過濾矩陣

var m_VideoType=0;

var pattern=new Array();

switch (m_VideoType)

{

case0://VIDEO_TYPE.VIDEO_STAGGERED:

{

pattern = [

0, 1,

0, 2,

1, 2,

1, 0,

2, 0,

2, 1,

];

break;

}

case1://VIDEO_TYPE.VIDEO_TRIPED:

{

pattern = [

0,

1,

2,

];

break;

}

case2://VIDEO_TYPE.VIDEO_3X3:

{

pattern =

[

0, 1, 2,

2, 0, 1,

1, 2, 0,

];

break;

}

default:

{

pattern =

[

0, 1, 2, 0, 0,

1, 1, 1, 2, 0,

0, 1, 2, 2, 2,

0, 0, 1, 2, 0,

0, 1, 1, 1, 2,

2, 0, 1, 2, 2,

0, 0, 0, 1, 2,

2, 0, 1, 1, 1,

2, 2, 0, 1, 2,

2, 0, 0, 0, 1,

1, 2, 0, 1, 1,

2, 2, 2, 0, 1,

1, 2, 0, 0, 0,

1, 1, 2, 0, 1,

1, 2, 2, 2, 0,

];

break;

}

}

var pattern_width = [ 2, 1, 3, 5 ];

var pattern_height = [6, 3, 3, 15 ];

3.獲取過濾數據

for ( var x = 0; x < canvasData.width; x++) {

for ( var y = 0; y < canvasData.height; y++) {

// Index of the pixel in the array

var idx = (x + y * canvasData.width) * 4;

var r = canvasData.data[idx + 0];

var g = canvasData.data[idx + 1];

var b = canvasData.data[idx + 2];

var nWidth = pattern_width[m_VideoType];

var nHeight = pattern_height[m_VideoType];

var index = nWidth * (y % nHeight) + (x % nWidth);

index = pattern[index];

if (index == 0)

var r = fclamp0255(2 * r);

if (index == 1)

var g = fclamp0255(2 * g);

if (index == 2)

var b = fclamp0255(2 * b);

// assign gray scale value

canvasData.data[idx + 0] = r; // Red channel

canvasData.data[idx + 1] = g; // Green channel

canvasData.data[idx + 2] = b; // Blue channel

canvasData.data[idx + 3] = 255; // Alpha channel

// 加上黑色的邊框

if(x < 8 || y < 8 || x > (canvasData.width - 8) || y > (canvasData.height - 8))

{

canvasData.data[idx + 0] = 0;

canvasData.data[idx + 1] = 0;

canvasData.data[idx + 2] = 0;

}

}

}

4.寫入過濾后的數據

context.putImageData(canvasData, 0, 0);

以上是“怎么用canvas實現圖片濾鏡效果”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

西乌| 亳州市| 南汇区| 滦平县| 娄烦县| 镇江市| 汝南县| 抚州市| 崇义县| 达州市| 泰州市| 历史| 浮梁县| 遵化市| 高要市| 凤山市| 南澳县| 台南市| 天门市| 曲水县| 永康市| 岐山县| 博野县| 芜湖市| 北海市| 布拖县| 独山县| 阿拉善左旗| 汶川县| 化州市| 浦县| 太和县| 徐汇区| 柳河县| 安平县| 湟中县| 湘乡市| 旌德县| 图片| 甘洛县| 清水河县|