JS中图片压缩的方法小结

本文总结了JavaScript中处理图片压缩的多种方法,包括从URL加载图片、Image转Canvas、Canvas压缩为Blob和dataURL等,提供了7个核心函数,覆盖了常见的图片处理需求,并封装了一个方便的文件压缩函数。最后,作者分享了代码库的GitHub链接。
摘要由CSDN通过智能技术生成

首先想一想我们有哪些需求?大多时候我们需要将一个File对象压缩之后再变为File对象传入到远程图片服务器;有时候我们也需要将一个base64字符串压缩之后再变为base64字符串传入到远程数据库;有时候后它还有可能是一块canvas画布,或者是一个Image对象,或者直接就是一个图片的url地址,我们需要将它们压缩上传到远程;面对这么多的需求,王二索性画了一张图:

Alt text

二、解决办法

如上图所示,王二一共写了七个方法,基本覆盖了JS中大部分文件类型的转换与压缩,其中:

1、 urltoImage(url,fn) 会通过一个url加载所需要的图片对象,其中 url 参数传入图片的 url , fn 为回调方法,包含一个Image对象的参数,代码如下:

?

1

2

3

4

5

6

7

function urltoImage (url,fn){

  var img = new Image();

  img.src = url;

  img.onload = function(){

    fn(img);

  }

};

2、 imagetoCanvas(image) 会将一个 Image 对象转变为一个 Canvas 类型对象,其中 image 参数传入一个Image对象,代码如下:

?

1

2

3

4

5

6

7

8

function imagetoCanvas(image){

  var cvs = document.createElement("canvas");

  var ctx = cvs.getContext('2d');

  cvs.width = image.width;

  cvs.height = image.height;

  ctx.drawImage(image, 0, 0, cvs.width, cvs.height);

  return cvs ;

};

3、 canvasResizetoFile(ca

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值