这篇文章将为大家详细讲解有关如何使用canvas压缩图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联公司是一家集成都网站制作、网站设计、网站页面设计、网站优化SEO优化为一体的专业网络公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。使用canvas压缩图片的步骤:
1、拿到图片元素
2、绘制一个空白的canvas
3、将图片绘制在canvas上
4、将canvas转成base64(这里调用的方法可以实现压缩,base64就可以直接放入src或者传入后端、转成别的格式传输等。)
代码实现:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <img src="test.png" style="width: 200px; height: 400px;" id="imgBefore"> <img src="" id="imgafter"> //待会压缩完的图片放入这里。 </body> </html> <script> var img = document.getElementById('imgBefore') //拿到图片元素 img.setAttribute("crossOrigin",'Anonymous') //这句话并不是必要的,如果你的图片是一个网络链接, //那么canvas绘制时可能会报错,是因为跨域的安全性问题。报错时加上就对了。 img.onload = ()=>{ //要确保图片已经加载完才进行绘制,不然拿不到图片元素会绘制出全黑的区域,就是失败。 var width = img.width var height = img.height var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); canvas.width = width; canvas.height = height; //以上几步都在绘制一个canvas ctx.drawImage(img,0,0,width,height);//将图片绘制进去,这里第一个参数可以接受很多格式, //以元素为例子,详情https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/drawImage var base64 = canvas.toDataURL('image/jpeg',0.2); //第二个参数为压缩的比例,越小越模糊。0-1 document.getElementById('imgafter').src = base64 } </script>
效果对比:
压缩前
压缩后:
关于如何使用canvas压缩图片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网站栏目:如何使用canvas压缩图片-创新互联
文章来源:https://www.cdcxhl.com/article8/dpoeip.html
成都网站建设公司_创新互联,为您提供微信公众号、域名注册、外贸网站建设、关键词优化、服务器托管、动态网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联