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 页面划词搜索JS
Sep 28 Javascript
JavaScript实现页面实时显示当前时间的简单实例
Jul 20 Javascript
分析了一下JQuery中的extend方法实现原理
Feb 27 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
前端vue如何使用高德地图
Nov 05 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Python几种常见算法汇总
2020/06/02 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
业务员岗位职责
2013/11/16 职场文书
另类冲刺标语
2014/06/24 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
如何写观后感
2015/06/19 职场文书
新人入职感言
2015/07/31 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
JavaScript 定时器详情
2021/11/11 Javascript