如何使用canvas压缩图片

这篇文章将为大家详细讲解有关如何使用canvas压缩图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

成都创新互联公司公司2013年成立,先为瑞丽等服务建站,瑞丽等地企业,进行企业商务咨询服务。为瑞丽企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

使用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压缩图片

关于如何使用canvas压缩图片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

分享文章:如何使用canvas压缩图片
文章网址:https://www.cdcxhl.com/article44/pisdee.html

成都网站建设公司_创新互联,为您提供品牌网站设计静态网站移动网站建设App开发网站制作企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发