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焦点图切换,上下翻转
May 12 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
May 28 Javascript
JavaScript基础教程之alert弹出提示框实例
Oct 16 Javascript
jQuery中:visible选择器用法实例
Dec 30 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
jquery动态导航插件dynamicNav用法实例分析
Sep 06 Javascript
基于javascript实现动态显示当前系统时间
Jan 28 Javascript
jQuery简单注册和禁用全局事件的方法
Jul 25 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 Javascript
Vue常用API、高级API的相关总结
Feb 02 Vue.js
JavaScript实现简单图片切换
Apr 29 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数据缓存的使用说明
2013/05/10 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
JS函数this的用法实例分析
2015/02/05 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
简单了解python关系(比较)运算符
2019/07/08 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
小学生读书感言
2014/02/12 职场文书
向领导表决心的话
2014/03/11 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
2014年基建工作总结
2014/12/12 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书