js关于getImageData跨域问题的解决方法


Posted in Javascript onOctober 14, 2016

在学习h5的时候,canvas标签中getImageData()报错:security error

具体代码如下(chrome浏览器):

function createGSCanvas(img){
 var canvas=document.createElement("canvas");
 canvas.width=img.width;
 canvas.height=img.height;
 var ctx=canvas.getContext("2d");
 ctx.drawImage(img,0,0);

 var c=ctx.getImageData(0,0,img.width,img.height);
 for(var i=0;i<c.height;i++){
  for(var j=0;j<c.width;j++){
   var x=(i*4)*c.height+(j*4);
   var r=c.data[x];
   var g=c.data[x+1];
   var b=c.data[x+2];
   c.data[x]=c.data[x+1]=c.data[x+2]=(r+g+b)/3;

  }
 }
 ctx.putImageData(c,0,0,0,0,c.width,c.height);
 return canvas.toDataURL();
}

报错信息如下:Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.

原因:createGSCanvas()调用了getImageData函数,但是图片存储在本地文件,默认为没有域名,chrome浏览器判定为跨域才报错!

解决方法:1、将图片放置在服务器中,由服务器返回给客户端浏览器,遵循同源策略;

                    2、在IE、Firefox浏览器中打开。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
比较全面的event对像在IE与FF中的区别 推荐
Sep 21 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
Jun 26 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
javascript继承机制实例详解
Nov 20 Javascript
js图片翻书效果代码分享
Aug 20 Javascript
JavaScript前端开发之实现二进制读写操作
Nov 04 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
Dec 03 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
Dec 26 Javascript
JS小数转换为整数的方法分析
Jan 07 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
validationEngine 表单验证插件使用实例代码
Jun 15 Javascript
Nuxt页面级缓存的实现
Mar 09 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 #Javascript
深入学习js瀑布流布局
Oct 14 #Javascript
微信小程序 地图定位简单实例
Oct 14 #Javascript
Bootstrap作品展示站点实战项目2
Oct 14 #Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
Oct 14 #Javascript
js中json处理总结之JSON.parse
Oct 14 #Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
Oct 14 #Javascript
You might like
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
axios学习教程全攻略
2017/03/26 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
简单介绍Python中的几种数据类型
2016/01/02 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
一份婚庆公司创业计划书
2014/01/11 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
《落花生》教学反思
2014/02/25 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
婚内房产协议书范本
2014/10/02 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript