JS和帆布如何实现图片的预览压缩和上传功能

  介绍

这篇文章将为大家详细讲解有关JS和帆布如何实现图片的预览压缩和上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

先来一张效果图,压压惊

 JS和帆布如何实现图片的预览压缩和上传功能

第一步:用户选择需要上传的图片

& lt; input 类型=癴ile",接受=巴枷?*“,类型=癴ile"“, name=癷mageFile", onchange=吧洗?)“在

在选定了图片后上传函数将被触发,我们需要在这个函数中,获取到图片的资源,将它压缩并利用帆布绘制出来,若需要上传到服务器,也可以利用ajax或者其他方式上传。

第二步:获取图片资源压缩预览上传

function 上传(),{,   let 才能;file =, document.querySelector(& # 39;输入[类型=文件]& # 39;).files[0],//,获取选择的文件,这里是图片类型,   let 才能;reader =, new  FileReader (),   ,,,reader.readAsDataURL(文件),//读取文件并将文件以URL的形式保存在resulr属性中,base64格式,   ,,,reader.onload =,函数(e),{,//文件读取完成时触发,,   ,,,,,let  result =, e.target.result //, base64格式图片地址,,   ,,,,,var  image =, new 图像(),image.src =, result //,设置的形象地址为base64的地址,,   ,,,,,image.onload =,函数(){,,   ,,,,,,,var  canvas =, document.querySelector (“# canvas");,,   ,,,,,,,var  context =, canvas.getContext (“2 d");,,   ,,,,,,,canvas.width =, image.width;,//,设置画布的画布宽度为图片宽度,,   ,,,,,,,canvas.height =, image.height;,,   ,,,,,,,context.drawImage(图像,,0,0,,image.width,, image.height),//,在画布上绘制图片,,   ,,,,,,,let  dataUrl =, canvas.toDataURL(& # 39;图像/jpeg # 39;,, 0.92),//, 0.92为压缩比,可根据需要设置,设置过小会影响图片质量,,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//,dataUrl 为压缩后的图片资源,可将其上传到服务器,,   ,,,,,},,   ,,,},   以前,}

现在我们来比较一下图片是否成功压缩:

原图大小:,

 JS和帆布如何实现图片的预览压缩和上传功能”>,,</p> <p>压缩比设置为0.92:<br/> </p> <p> <img src=

压缩比设置为0.52

 JS和帆布如何实现图片的预览压缩和上传功能

乍一看,你是不是觉得很奇怪,为什么设置了缩放比为0.92,图片居然比原图大?其实图片通过base64编码后都会变的比原图大,具体原因可以查阅base64的编码原理。如此看来,我们已经成功压缩了图片!

注意点:帆布在IE9以下不支持;大图片尽量不要使用base64,影响响应速度。

JavaScript是什么

JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于web的开发,可以给网站添加各种各样的动态效果,让网页更加美观。

关于“JS和帆布如何实现图片的预览压缩和上传功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

JS和帆布如何实现图片的预览压缩和上传功能