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 相关文章推荐
js遍历td tr等html元素
Dec 13 Javascript
浅析JQuery UI Dialog的样式设置问题
Dec 18 Javascript
jQuery中removeAttr()方法用法实例
Jan 05 Javascript
javascript 动态创建表格的2种方法总结
Mar 04 Javascript
javascript中的正则表达式使用详解
Aug 30 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
javascript实现页面滚屏效果
Jan 17 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
vue loadmore组件上拉加载更多功能示例代码
Jul 19 Javascript
ES6关于Promise的用法详解
May 07 Javascript
跨域请求两种方法 jsonp和cors的实现
Nov 11 Javascript
游戏开发中如何使用CocosCreator进行音效处理
Apr 14 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
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
JavaScript事件列表解说
2006/12/22 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
vue中轮训器的使用
2019/01/27 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python基类函数的重载与调用实例分析
2015/01/12 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
详解Python中find()方法的使用
2015/05/18 Python
Python语法快速入门指南
2015/10/12 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
python后端接收前端回传的文件方法
2019/01/02 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
新闻专业本科生的自我评价分享
2013/11/20 职场文书
安全责任书范文
2014/08/25 职场文书
党员志愿者活动方案
2014/08/28 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python