最近在移动端设计头像上传功能时,原本是以<input type=”file”>直接通过formdata上传,濮阳县三中然而实际使用情况是:对于过大的图片(高像素手机所拍摄的照片等)上传时间过长会导致上传失败,而每次都上传原始大小的图片(我好想你 苏打绿后台处理压缩)十分影响用户体验,所以研究了一下通过canvas压缩图片并上传的方法,以下是整理的一些思路和心得:
一、<input type=”file”>获取本地图片,并将图片绘制到画布中。此处的难点在于:由于浏览器的保护机制,无法直接获取到本地文件的图片路径,所以需要将本地图片编译成ba64格式再做上传,代码如下:
javascript code
复制内容到剪贴板
二、图像在canvas中的处理
javascript code
复制内容到剪贴板
这里需要注意的几点是:
1、本地调试时会有一个报错,原因为跨域问题,需要再服务端调试;
2、canvas中的drawimage()方法具备图像剪裁功能,但将图像拉伸和剪裁同时写入的话,会优先执行剪裁的方法;
3、使用ajax上传图像编码时,编码内的加号会被转成空格上传导致后台编译失败;
4、关于对图片区域选择上传的方法尚在尝试阶段,后续会补上心得。
以上就是本文的全部内容,希望对大家的学习有所帮助。
原文:
本文发布于:2023-04-03 05:35:22,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/9375c5eb525578009a981aacabc022dc.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:html5 canvas移动浏览器上实现图片压缩上传.doc
本文 PDF 下载地址:html5 canvas移动浏览器上实现图片压缩上传.pdf
留言与评论(共有 0 条评论) |