所有分类
  • 所有分类
  • 后端开发
HTML5与Canvas轻松实现灰度图片效果,省心又便捷

HTML5与Canvas轻松实现灰度图片效果,省心又便捷

以前,在web上要显示灰度图片的话,只有手工使用图片软件转换。但是现在借助于html5的canvas可以实现这个过程,而不需要再借助图片编辑软件了。但是现在借助于html5可以实现的更快更容易,因为灰度图片是直接在原图上生成的。

探讨HTML5与Canvas的灰度图片效果

嘿哟大家好!今天就聊聊怎么网上展示灰度图呗。以前要用特定的工具转换格式才行,很麻烦。现在HTML5 canvas可以轻松实现!以后不用再找不到合适的工具而烦恼,更省心了噢~

HTML5与灰度图片的故事

HTML5和灰度图可真是形影不离的好哥们儿,亲密无间!利用HTML5的canvas功能,在网络上拉一拉动一动就能改变图片颜色,简直太便捷了~完全用不着费心做黑白或多彩两张图,节省了时间精力,真心赞不绝口!

HTML5与Canvas轻松实现灰度图片效果,省心又便捷

我的HTML5和jQuery小demo

别急我这儿有个好玩意儿给你看看。教你如何用HTML5和jQuery把图片变得黑白或者变色,炒鸡有趣!快来看!

    
    // 设置 window load事件是为了等待所有图片加载完毕之后才行运行
    $(window).load(function(){        
        // 使图片渐入,这样有颜色的原图就不会显示出来了,然后再执行window load 事件
        $(".item img").fadeIn(500);        
        // 复制图片
        $('.item img').each(function(){            
        var el = $(this);
            el.css({"position":"absolute"}).wrap("

").clone().addClass('img_grayscale') .css({"position":"absolute","z-index":"998","opacity":"0"}).insertBefore(el).queue(function(){ var el = $(this); el.parent().css({"width":this.width,"height":this.height}); el.dequeue(); }); this.src = grayscale(this.src); }); // 使图片渐入 $('.item img').mouseover(function(){ $(this).parent().find('img:first').stop().animate({opacity:1}, 1000); }) $('.img_grayscale').mouseout(function(){ $(this).stop().animate({opacity:0}, 1000); }); }); // 使用canvas制作灰色图片 function grayscale(src){ var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var imgObj = new Image(); imgObj.src = src; canvas.width = imgObj.width; canvas.height = imgObj.height; ctx.drawImage(imgObj, 0, 0); var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height); for(var y = 0; y < imgPixels.height; y++){ for(var x = 0; x < imgPixels.width; x++){ var i = (y * 4) * imgPixels.width + x * 4; var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3; imgPixels.data[i] = avg; imgPixels.data[i + 1] = avg; imgPixels.data[i + 2] = avg; } } ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height); return canvas.toDataURL(); }

实战演练:鼠标hover切换效果

这个代码真的好神奇!只要给图片配好你要处理的信息,就能快速地转换成模拟素描效果的纯黑白色图。更厉害的是,鼠标放上去,画面立刻就能恢复原样偷偷告诉你,还能调整变化速度,每秒能变动几千次!喜欢快还是慢,自己看着办!

兼容性问题与解决方案

HTML5与Canvas轻松实现灰度图片效果,省心又便捷

放心!即便浏览器对HTML5不太友好,你的图片还是会原汁原味,并不会变成黑白。不过,要是你想让大家都能看到你的网页,却发现火狐或者谷歌打不开,那赶紧把文件传到网上去。

Canvas元素的神奇之处

,Canvas画图真是好用~2D、3D通吃~不过,有时候也会碰到“Security Error”,特别是用到toDataURL()和src这两个地方。

跨域图片问题与解决方法

说起跨域问题真是头疼,特别是在没服务器环境时更是麻烦。简单来说就像Canvas不认识现在网页和图片一样。所以,通常得搭个本地服务器环境,或者先上传到服务器再去处理。

结语及展望

聊到这儿了,咱们就简单说说。HTML5和Canvas真挺牛的,能把黑白图片照得特美。再说,咱们科技在进步,以后肯定还有更多好玩实用的新鲜玩意儿等着咱们!

原文链接:https://www.icz.com/technicalinformation/web/2024/03/12163.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?