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 相关文章推荐
番茄的表单验证类代码修改版
Jul 18 Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
cnblogs TagCloud基于jquery的实现代码
Jun 11 Javascript
基于Jquery的温度计动画效果
Jun 18 Javascript
jquery封装的对话框简单实现
Jul 21 Javascript
各种页面定时跳转(倒计时跳转)代码总结
Oct 24 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
Dec 17 Javascript
Javascript单元测试框架QUnitjs详细介绍
May 08 Javascript
jQuery实现精美的多级下拉菜单特效
Mar 14 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
微信小程序实现图片上传
May 23 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正则提取图片地址
2014/03/27 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
python创建和删除目录的方法
2015/04/29 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
python实现简单flappy bird
2018/12/24 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
python scipy卷积运算的实现方法
2019/09/16 Python
基于python3的socket聊天编程
2020/02/17 Python
python如何进行矩阵运算
2020/06/05 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
公司联欢晚会主持词
2014/03/22 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
党性分析自查总结
2014/10/14 职场文书
技术负责人岗位职责
2015/02/10 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
Python入门之基础语法详解
2021/05/11 Python