canvas遇到的坑

1、canvas2image

安卓端微信6.3.22以前不支持base64图片长按保存,6.3.23以后修复(2016年8月1日更新)。

app中IOS及安卓均不支持长按保存。

 

2、出于安全考虑,drawImage绘制的图片不允许跨域。

(1).如果该跨域图片所在的服务器允许跨域访问,加入image.crossOrigin = '*';

例:

var _this = this,
  image = new Image();

image.crossOrigin = '*';
image.onload = function(){
  _this.context.drawImage(image,0,0,_this.canvas.width,_this.canvas.height);
}
image.src = 'bg3.jpg';

 (2).如果服务器图片不允许跨域,

base64图片可以用jsonp形式解决跨域问题

将图片转为二进制文件,再将二进制文件丢到canvas里

 

注:base64图片

将图像文件的内容直接写在了HTML 文件中,节省了一个HTTP 请求,但是浏览器不会缓存这种图像。

参考文档:

https://mzkmzk.gitbooks.io/web_accumulate/content/wei_xin_base64_tu_pian_bao_cun_shi_bai.html

posted on 2016-11-30 11:38  是时候有个博客了  阅读(704)  评论(0)    收藏  举报

导航