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的对话框详解与参数
Mar 08 Javascript
JavaScript 高级语法介绍
Jun 15 Javascript
Javascript 静态页面实现随机显示广告的办法
Nov 17 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
jQuery满屏焦点图左右滚动特效代码分享
Sep 07 Javascript
jQuery实现网页顶部固定导航效果代码
Dec 24 Javascript
常用的js验证和数据处理总结
Aug 02 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 Javascript
JavaScript 异步时序问题
Nov 20 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
JsRender for object语法简介
2014/10/31 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
vue cli 全面解析
2018/02/28 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
python搭建简易服务器分析与实现
2012/12/15 Python
Python2.x与Python3.x的区别
2016/01/14 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
Python应用库大全总结
2018/05/30 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python模糊图片过滤的方法
2018/12/14 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python中关于浮点数的冷知识
2019/09/22 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
10条PHP编程习惯
2014/05/26 面试题
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
技术负责人任命书
2014/06/05 职场文书
2014年妇联工作总结
2014/11/21 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
Redis三种集群模式详解
2021/10/05 Redis