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 相关文章推荐
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
JS定义回车事件(实现代码)
Jul 08 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
Jan 13 Javascript
总结jQuery插件开发中的一些要点
May 16 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
Sep 17 Javascript
JavaScript监听手机物理返回键的两种解决方法
Aug 14 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
js array数组对象操作方法汇总
Mar 18 Javascript
小程序Request的另类用法详解
Aug 09 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
JS实现联想、自动补齐国家或地区名称的功能
Jul 07 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/04 无线电
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
北京银河万佳Java面试题
2012/03/21 面试题
青春寄语大全
2014/04/09 职场文书
新书发布会策划方案
2014/06/09 职场文书
校园文化标语
2014/06/18 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
mysql创建存储过程及函数详解
2021/12/04 MySQL