日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html5 手机拍视频滤镜,用canvas实现图片滤镜效果附演示_html5教程技巧

發布時間:2025/3/8 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html5 手机拍视频滤镜,用canvas实现图片滤镜效果附演示_html5教程技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是一個很有意思的特效,模擬攝像機拍攝電視屏幕畫面時出現點狀顆粒的效果。顆粒的大小通過變換矩陣實現,可以任意調節,有興趣研究的朋友可以嘗試更多的效果,代碼沒有經過優化,只是一個粗糙的Demo,大家可以自行改進。

1.獲取圖像數據

復制代碼代碼如下:

img.src = ’http://bloglaotou.duapp.com/wp-content/themes/frontopen2/tools/filter/image2.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);

5.參考資料

代震軍ImageFilter開源項目

聲明:本文原創發布php中文網,轉載請注明出處,感謝您的尊重!如有疑問,請聯系admin@php.cn處理

總結

以上是生活随笔為你收集整理的html5 手机拍视频滤镜,用canvas实现图片滤镜效果附演示_html5教程技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品观看 | 另类视频在线观看+1080p | 欧美性大战久久久久久 | 国产精品一区在线观看你懂的 | 日本一区二区三区视频免费看 | 孕妇爱爱视频 | 国产一区二区女内射 | 青青青青青草 | 蜜臀av免费在线观看 | 青草视频免费看 | 蜜桃av噜噜一区二区三区小说 | 精品乱人伦一区二区三区 | 国产91黄色 | 国产精品野外户外 | 特黄老太婆aa毛毛片 | 精品在线视频一区二区三区 | 在线观看你懂得 | 波多野吉衣av在线 | 国产一二三四在线 | 成人aⅴ视频 | 97狠狠操 | 亚洲第一天堂影院 | av综合在线观看 | 精品久久久久久亚洲综合网站 | 男女日皮视频 | 伊人国产在线观看 | 白又丰满大屁股bbbbb | 尤物视频在线观看免费 | www夜夜 | 午夜精品久久久久久久久久蜜桃 | 欧美风情第一页 | 在线成人av | 国产日韩一区二区三免费高清 | 91国在线观看| 日韩精品一区二区电影 | 黑人玩弄人妻一区二 | 国产毛片毛片毛片毛片毛片毛片 | 玩日本老头很兴奋xxxx | 亚洲一区在线视频观看 | 精品人妻码一区二区三区红楼视频 | 日韩二级片 | 激情午夜网| 午夜精品久久久久久久99老熟妇 | 国产成人精品777777 | 国产一区二区三区高清视频 | 韩国黄色精品 | 亚洲一区二三区 | 亚洲国产欧美精品 | 成人网站在线进入爽爽爽 | 亚洲av久久久噜噜噜噜 | 在线国产黄色 | 一二三不卡 | n0659极腔濑亚美莉在线播放播放 | 婷婷婷色 | 欧美一级不卡视频 | 国产天堂| 日本少妇毛茸茸 | 国产综合婷婷 | 成人久久久久 | 五月天青青草 | 免费人成年激情视频在线观看 | 欧美精产国品一二三 | 伦理自拍 | 亚洲国产一二 | 91久久国产综合久久91 | 69国产精品视频免费观看 | 99热99re6国产在线播放 | 日韩青青草 | 五月激情六月丁香 | 巨胸喷奶水www久久久免费动漫 | 午夜激情在线视频 | 少妇高潮一区二区三区99刮毛 | 老头巨大又粗又长xxxxx | 精品人妻一区二区三区四区五区 | 3d动漫精品啪啪一区二区免费 | 国产不卡视频在线观看 | 少妇一级淫免费放 | 秘密基地电影免费版观看国语 | 另类性姿势bbwbbw | 女性生殖扒开酷刑vk | 伊人69| 日本精品网站 | 欧美tv| 欧洲精品视频在线 | 成人精品网 | 最新中文字幕在线观看视频 | 五月天久久久久久 | av解说在线 | 97精品超碰一区二区三区 | 少女逼逼| 午夜67194| 91操视频 | 91中文字幕在线视频 | 日韩精品卡通动漫网站 | 高清日韩一区二区 | 少妇人妻综合久久中文字幕 | 日日撸夜夜操 | 欧美三级不卡 | 浮生影视在线观看免费 |