JavaScript图片压缩操作

 时间:2024-10-29 21:15:06

1、解决办法:如上图所示,王二一共写了七个方法,基本覆盖了JS中大部分文件类型的转换与压缩,其中:1、 urltoImage(url,fn) 会通过一个url加载所需要的图片对象,其中 url 参数传入图片的 url , fn 为回调方法,包含一个Image对象的参数,代码如下:

JavaScript图片压缩操作

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

JavaScript图片压缩操作

3、 canvasResizetoFile(canvas,quality,fn) 会将一个 Canvas 对象压缩转变为一个 Blob 类型对象;其中 canvas 参数传入一个 Canvas 对象; quality 参数传入一个0-1的 number 类型,表示图片压缩质量; fn 为回调方法,包含一个 Blob 对象的参数;代码如下:

JavaScript图片压缩操作

4、这里的 Blob 对象表示不可变的类似文件对象的原始数据。 Blob 表示不一定是 JavaScript 原生形式的数据。 File 接口基于 Blob ,继承了 Blob 的功能并将其扩展使其支持用户系统上的文件。可以把它当做File类型对待,其他更具体的用法可以参考MDN文档4、 canvasResizetoDataURL(canvas,quality) 会将一个 Canvas 对象压缩转变为一个 dataURL 字符串,其中 canvas 参数传入一个 Canvas 对象; quality 参数传入一个0-1的 number 类型,表示图片压缩质量;代码如下:

JavaScript图片压缩操作

5、其中的 toDataURL API可以参考MDN文档5、 filetoDataURL(file,fn) 会将 File ( Blob )类型文件转变为 dataURL 字符串,其中 file 参数传入一个 File ( Blob )类型文件; fn 为回调方法,包含一个 dataURL 字符串的参数;代码如下:

JavaScript图片压缩操作

6、 dataURLtoImage(dataurl,fn) 会将一串 dataURL 字符串转变为 Image 类型文件,其中 dataurl 参数传入一个 dataURL 字符串, fn 为回调方法,包含一个 Image 类型文件的参数,代码如下:

JavaScript图片压缩操作

7、 dataURLtoFile(dataurl) 会将一串 dataURL 字符串转变为 Blob 类型对象,其中 dataurl 参数传入一个 dataURL 字符串,代码如下:

JavaScript图片压缩操作

8、三、进一步封装对于常用的将一个 File 对象压缩之后再变为 File 对象,可以将上面的方法再封装一下,参考如下代码:

JavaScript图片压缩操作

9、其中, file 参数传入一个 File ( Blob )类型文件; quality 参数传入一个 0-1 的 number 类型,表示图片压缩质量; fn 为回调方法,包含一个 Blob 类型文件的参数。它使用起来就像下面这样:

JavaScript图片压缩操作

10、这样的话,图片压缩上传就能轻松地搞定了,以上的8个方法我已经封装好放到 github 上了,喜欢的话可以使劲的star哈。参考文档:MDNps:下面看下JS等比压缩图片的办法

JavaScript图片压缩操作
  • 小米手机自定义运营商名称
  • 圣诞蜜汁果味奶
  • 快手早餐必备的5个神器 好用不贵
  • 如何添加国金期货APP的资金流向行情抬头
  • 小米手机怎么把相册设置为屏蔽相册?
  • 热门搜索
    争做最美学生手抄报 祖国我为你骄傲手抄报 低碳生活手抄报图片 吸烟有害健康手抄报 中华传统美德手抄报 初中小组手抄报 禁毒手抄报的内容 手抄报花 关于节约的手抄报 安全的手抄报内容