Javascript-[图片压缩并把 base64 汇出成 File]

遇到问题了

想要把图片压缩后再重新命名,在汇出成File,这样的条件我原本以为很快就可以完成,没想到花了我半天的时间,找寻解决方法,恩~~~那就来分享一下。


解决方法

function resizeImage(file){//新增一个Imagevar img = new Image()//使用 canvas 来让图片缩小之后在把var canvas=document.createElement("canvas");        var ctx=canvas.getContext("2d");var MAX_WIDTH=fileData.width;var MAX_HEIGHT=fileData.height;img.onload = function(){    var img_width = img.width;    var img_height = img.height;    var scale = Math.min((MAX_WIDTH/img_width),(MAX_HEIGHT/img_height));    var img_width_scale = img_width*scale;    var img_height_scale = img_height*scale;    canvas.width = img_width_scale;    canvas.height = img_height_scale;    //canvas放到Image里面    ctx.drawImage(img,0,0,img_width_scale,img_height_scale);    var imageData = {        ///再变成"image/jpg"        base64:canvas.toDataURL("image/jpg"),        fileName:fileData.fileName    }    dataURLtoFile(imageData)}img.src = URL.createObjectURL(file)   }
//把base64换成file档案function dataURLtoFile(){    var arr = imageData.base64.split(','),         mime = arr[0].match(/:(.*?);/)[1],        bstr = atob(arr[1]), n = bstr.length,         u8arr = new Uint8Array(n);        while(n--){            u8arr[n] = bstr.charCodeAt(n);        }        var newFile = new File([u8arr], imageData.fileName, {type:mime});        commit('SET_RESIZE_IMAGE_FILE',newFile)}

回上一页
回下一页


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章