茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    用canvas實現(xiàn)圖片濾鏡效果附演示
    來源:易賢網(wǎng) 閱讀:1604 次 日期:2016-07-12 14:09:29
    溫馨提示:易賢網(wǎng)小編為您整理了“用canvas實現(xiàn)圖片濾鏡效果附演示”,方便廣大網(wǎng)友查閱!

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

    1.獲取圖像數(shù)據(jù)

    代碼如下:

    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.設(shè)置過濾矩陣

    代碼如下:

    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.獲取過濾數(shù)據(jù)

    代碼如下:

    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.寫入過濾后的數(shù)據(jù)

    代碼如下:

    context.putImageData(canvasData, 0, 0);

    更多信息請查看網(wǎng)頁制作
    易賢網(wǎng)手機網(wǎng)站地址:用canvas實現(xiàn)圖片濾鏡效果附演示
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)