微信 jsapi 选择本地图片放入 canvas 安卓居然报跨域??

2019-08-23 10:51:00 +08:00
 mikoshu

微信 js-sdk 接口 chooseImage 选择本地图片后生成的 localid 可以直接放入 img 标签里预览,这时候如果需要对图片裁切后生成 base64code IOS 和微信开发者工具正常 但是安卓居然提示 "Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported"

试过 img.setAttribute("crossOrigin",'Anonymous') 无效

估计现在只能将图片上传到微信服务器然后让后端去微信那边下载图片再返回一个允许跨域的图片 url 给我,来实现图片裁切了....

1911 次点击
所在节点    问与答
6 条回复
TomVista
2019-08-23 11:01:09 +08:00
盲猜 file:url
mikoshu
2019-08-23 11:37:03 +08:00
@TomVista 错 是 wxLocalResource://imageidxxxxxxx
mikoshu
2019-08-23 11:38:09 +08:00
@TomVista 不过估计也是被微信反代为 file:url
ESeanZ
2019-08-23 11:48:04 +08:00
FileReader 读取文件直接装 base64 canvas 导入 base64 的图片再做裁剪 裁剪后再转 base64 到得最终结果
nihiue
2019-08-23 14:27:51 +08:00
楼上正解
nihiue
2019-08-23 14:31:47 +08:00
还有个备选方案
const img = new Image();
img.setAttribute('crossOrigin','Anonymous')
img.src = 'XXXXXXXX';

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX