本文介绍了一套在JavaScript中处理图片压缩的方法,以适应不同场景需求。首先,明确需求是将不同形式的图片(URL、canvas画布、Image对象、base64字符串等)转换并压缩为可传输的形式,包括File对象、Blob对象、dataURL字符串等。接下来,具体介绍了七种方法来实现这一目标:1. `urltoImage(url, fn)`:接收图片URL加载图片对象,回调返回Image对象。2. `imagetoCanvas(image)`:将Image对象转换为Canvas对象。3. `canvasResizetoFile(canvas, quality, fn)`:接收Canvas对象,通过指定质量压缩为Blob对象,回调返回Blob对象。4. `canvasResizetoDataURL(canvas, quality)`:同上,但将压缩的Canvas对象转化为dataURL字符串。5. `filetoDataURL(file, fn)`:将File(Blob)类型文件转化为dataURL字符串。6. `dataURLtoImage(dataurl, fn)`:将dataURL字符串转换为Image对象。7. `dataURLtoFile(dataurl)`:将dataURL字符串转换为Blob对象。最后,提出将常用需求封装为简化的方法,如将文件对象压缩后转为文件对象,简化代码使用。所有方法已封装在GitHub仓库中,欢迎查看和star。