为了账号安全,请及时绑定邮箱和手机立即绑定

Canvas.toDataURL not working on mobile Safari iOS?

Canvas.toDataURL not working on mobile Safari iOS?

守候你守候我 2018-10-12 14:19:18
通过canvas做图片压缩上传,用canvas.toDataURL将原图转换成base64传到服务器,在PC端浏览器可以正常运行,在android端浏览器也可以正常运行,就是在iPhone的safari上获取压缩过后的base64数据时,返回的是个“data;”,也就是toDataURL没有生效。var compress = function(source_img_obj, quality, output_format){    var mime_type = "image/jpeg";     if(output_format!=undefined && output_format=="png"){         mime_type = "image/png";     }     alert(source_img_obj);    var cvs = document.createElement('canvas');        //naturalWidth真实图片的宽度         cvs.width = source_img_obj.naturalWidth;         cvs.height = source_img_obj.naturalHeight;    var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0);             var newImageData = cvs.toDataURL(mime_type, quality/100);    var result_image_obj = new Image();         result_image_obj.src = newImageData;    return result_image_obj; }传入的source_img_obj也是base64数据,是正常的,但在IOS系统的Safari中执行cvs.toDataURL(mime_type, quality/100)后返回的newImageData为"data;",在Stack Overflow上看到有解答说是iPhone上Safari不支持toDataURL,如果要换其他插件之类的,项目改动比较大,是否真的没有解决方案?
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

几种可能性:

  1. 图片文件 size 太大,是否图片超过了 3M ?

  2. 图片的 dimension 太大,是否图片尺寸超过了 1000 x 1000 像素?

  3. 你指定的 mime_type 不支持,你用的是哪个 mime type?


查看完整回答
反对 回复 2018-11-09
  • 1 回答
  • 0 关注
  • 593 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号