当前位置: 首页 > 面试题库 >

用js怎么实现图片马赛克效果?

轩辕翰
2023-03-14
本文向大家介绍用js怎么实现图片马赛克效果?相关面试题,主要包含被问及用js怎么实现图片马赛克效果?时的应答技巧和注意事项,需要的朋友参考一下
// 使用canvas获取ImageData,然后遍历修改像素数据实现

class Main {
    init() {
        var cvs = document.getElementById("canvas");
        var ctx = cvs.getContext("2d");
        var _img = new Image();
        _img.src = "./img/loginbg.jpg";
        _img.onload = () => {
            ctx.drawImage(_img, 0, 0);
            let _db = ctx.getImageData(0, 0, cvs.width, cvs.height);
            ctx.clearRect(0,0,640, 1136);
            ctx.putImageData(this.toPixelate(_db, ctx, 5), 0, 0);
        }
    }

    toPixelate(imgDb, ctx, lv) {
        if (!lv) {
            lv = 3;
        }
        let rsl = ctx.createImageData(imgDb.width, imgDb.height);
        let _db1 = [];
        for(let i=0;i<imgDb.data.length;i+=4) {
            _db1.push([
                imgDb.data[i], imgDb.data[i+1], imgDb.data[i+2], imgDb.data[i+3]
            ])
        }
        for (let i=0;i<imgDb.width;i++) {
            for (let j=0;j<imgDb.height;j++) {
                let fi = i-(i%lv);
                let fj = j-(j%lv);
                _db1[j*imgDb.width+i] = [..._db1[fj*imgDb.width+fi]];
            }
        }

        _db1.forEach((v, i) => {
            const k = i*4;
            rsl.data[k] = v[0];
            rsl.data[k+1] = v[1];
            rsl.data[k+2] = v[2];
            rsl.data[k+3] = v[3];
        })

        return rsl;
    }

}

var main;
window.onload = function () {
    main = new Main();
    main.init();
}
 类似资料:
  • 本文向大家介绍OpenCV实现马赛克和毛玻璃滤镜效果,包括了OpenCV实现马赛克和毛玻璃滤镜效果的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了OpenCV实现马赛克和毛玻璃滤镜的具体代码,供大家参考,具体内容如下 一、马赛克效果 马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内随机选取的一个像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓。 以下OpenC

  • 本文向大家介绍Python实现PS滤镜中马赛克效果示例,包括了Python实现PS滤镜中马赛克效果示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现PS滤镜中马赛克效果。分享给大家供大家参考,具体如下: 这里利用 Python 实现PS 滤镜中的马赛克效果,具体的算法原理和效果可以参考附录说明,Python示例代码如下: 附:PS 滤镜算法原理 ——马赛克 原图 效果图

  • 本文向大家介绍php实现图片添加描边字和马赛克的方法,包括了php实现图片添加描边字和马赛克的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现图片添加描边字和马赛克的方法。分享给大家供大家参考。具体实现方法如下: 马赛克:void imagemask ( resource image, int x1, int y1, int x2, int y2, int deep) ima

  • 在图像上用手指滑动涂抹,所经过的区域形成马赛克效果。可以自定义马赛克效果粗细程度(即马赛克方块的大小),以及涂抹形成马赛克的范围。 [Code4App.com]

  • 本文向大家介绍js实现图片轮播效果,包括了js实现图片轮播效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲解了js实现图片轮播效果代码,分享给大家供大家参考,具体内容如下 运行代码如下 具体代码如下 插件是基于jQuery写的,主要实现的功能:自动播放、鼠标悬停、左右箭头控制+禁止点击 CSS样式: HTML布局( a标签最好加个title属性 ): JS脚本插件: 页面调用: 希望本文所

  • 本文向大家介绍JS实现图片切换特效,包括了JS实现图片切换特效的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JS实现图片切换的具体代码,供大家参考,具体内容如下 知识点: 1.window.onload网页全部加载完后再执行 2.获取元素 设置属性 3.临界情况判断 运行效果: 点击上一张下一章切换图片 代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐