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 相关文章推荐
JavaScript Event学习第五章 高级事件注册模型
Feb 07 Javascript
javascript getElementsByClassName实现代码
Oct 11 Javascript
jquery蒙版控件实现代码
Dec 08 Javascript
批量实现面向对象的实例代码
Jul 01 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 Javascript
javascript中错误使用var造成undefined
Mar 31 Javascript
AngularJS入门教程之AngularJS表达式
Apr 18 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
通过JS获取Request.QueryString()参数的值实现方法
Sep 27 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
Aug 29 Javascript
原生js实现each方法实例代码详解
May 27 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP+DBM的同学录程序(1)
2006/10/09 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python with的用法
2014/08/22 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
浅析Python面向对象编程
2020/07/10 Python
了解一下python内建模块collections
2020/09/07 Python
python实现图片转字符画
2021/02/19 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
教师评优的个人自我评价分享
2013/09/19 职场文书
微型企业创业投资计划书
2014/01/10 职场文书
校园公益广告语
2014/03/13 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android