h5标签canvas关于getImageData跨域的问题

在学习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

for(var j=0;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浏览器中打开。

canvas关于getImageData跨域问题解决方法

一.问题:在使用html5的canvas是,当用到getImageData方法获取图片信息时,会碰到跨域无法获取的情况,代码如下: document.getElementById("pic& ...

快速解决Canvas.toDataURL 图片跨域的问题

出现Canvas.toDataURL 图片跨域问题怎么解决呢?下面小编就为大家带来一篇Canvas.toDataURL 图片跨域问题的快速解决方法.一起跟随小编过来看看吧 如题,在将页面的图片地址进行 ...

canvas图片的跨域问题

科普文章from MDN 实践证明这篇里的回答对的: .起个服务器再在chrome里试一下,应该会跑通. .右键chrome,属性,在目标后面加上(有个空格) --allow-file-access- ...

canvas.toDataURL 由于跨域报错的解决方法

关于canvas.toDataURL 由于跨域报错的解决方法 用过canvas,都知道toDataURL这个方法真好用,不仅合成图片用到它,压缩图片也用到它.但有一个问题,就是图片源不能跨域,不然会报 ...

js 利用canvas + flv.js实现视频流 截屏 、本地下载功能实现,兼容火狐,谷歌;canvas截屏跨域问题,无音频视频流加载不显示问题

项目:物联网监控项目----后台视频流管理(前端实现视频截屏功能) 本文就不同视频源分情况展示: 1 本地视频(项目同目录视频)截屏(canvas.getContext("2d).drawI ...

canvas 使用图片跨域问题

项目中需要生成海报,使用了前端生成图片的插件,将背景图,详情图,以及部分的文字说明放在一块并且生成一张新的图片,大体看了一下源码是通过canvas来实现的,在本地的时候完全没有问题,提交到服务器之后就 ...

解决Canvas.toDataURL 图片跨域问题

如题,在将页面的图片地址进行本地输出时(Html2Canvas.js),因不同源存在跨域问题,会出现toDataURL访问权限问题: [Redirect at origin 'http://sub1. ...

(H5)FormData+AJAX+SpringMVC跨域异步上传文件

最近都没时间整理资料了,一入职就要弄懂业务,整天被业务弄得血崩. 总结下今天弄了一个早上的跨域异步上传文件.主要用到技术有HTML5的FormData,AJAX,Spring MVC. 首先看下上传页 ...

H5之postMessage 。实现跨域

对于跨域我们有很多的解决方案,今天我来分享一下postMessage的那点事,postMessage是html5新增的一个解决跨域的一个方法,不过很可惜万恶的ie6,7不支持 postMessage( ...

随机推荐

Nginx配置指定媒体类型文件强制下载

由于业务需要,在点击显示链接(如www.xxx.com/2015-01-15/xxx.png)显示媒体资源(如图片.视频.音频.文档),而在点击下载链接(如www.xxx.com/2015-01-15 ...

hihoCoder #1199 : Tower Defense Game ——(树型dp)

题目链接:https://hihocoder.com/problemset/problem/1199. 题意:一棵以1为根的树,每个点有一个p值和q值,到这个点需要当前分数大于等于p,然后消耗掉(p- ...

Zabbix3.0 自动邮件报障

Zabbix3.0以后,自带的邮件报警支持SSL验证了, 但是仍然没有发送复数个邮箱以及CC,BCC的功能, 因此,我们还是得用别的方法来实现邮件报障. 实现方法有很多种,我用的是PHPmailer. ...

visual studio snippets风格

snippet挺好用,但是不是我喜欢的那种风格,比如if是这样的 if () { XX } 而我比较习惯这种: if () { XX } 可以这么做: 工具(Tools)——代码段管理器(Code S ...

js怎样生成json的数据

var row1 = {};row1.name = 'david';row1.age = '20'; //或者var row2 = {name: 'peter', age: '23'}; var da ...

(转)\r \r\n \t 的区别

小风吹雪 \r \r\n \t 的区别 http://www.360doc.com/content/12/0530/15/16538_214756101.shtml \n 软回车:       在Wi ...

SQL Server 2012的附件失败,与硬链接的问题

1.我在系统上做了硬链接,也就是把C盘的某个目录,映射为D盘. 2.把数据库文件mdf和ldf放入D盘.结果,SQL Server的企业管理器,无法从D盘里加载mdf或ldf文件,并且在目录下无法显示 ...

android.os.NetworkOnMainThreadException异常如何解决

android.os.NetworkOnMainThreadException 08-08 17:53:30.635 I/ArticleTable(22461): 添加成功 58 08-08 17:5 ...

关于 JavaScript 的 null 和 undefined,判断 null 的真实类型

null.undefined 博客地址: https://ainyi.com/39 undefined:表示一个变量最原始的状态,而非人为操作的结果 null:表示一个对象被人为的重置为空对象,而非一 ...

h5跨域访问图片_h5标签canvas关于getImageData跨域的问题相关推荐

  1. h5跨域访问图片_网页保存为图片及高清截图的优化 | canvas跨域图片配置

    本次技术调研来源于H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 将整个网页保存为图片是一个十分有趣的功能,常见于H ...

  2. nginx配置跨域访问后不生效,仍然显示跨域问题

    解决方案 首先,我们先确定跨域源目标没写错,可以先将Allow-Origin改成*测试 server {listen 80;server_name https://www.test.com;locat ...

  3. 使用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域访问错误试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  4. 第一百一十期:详解SpringBoot应用跨域访问解决方案

    说到跨域访问,必须先解释一个名词:同源策略.所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同.Host(ip)相同.端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问 ...

  5. jQuery 跨域访问问题解决方法

    浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时地都要疼上一疼.记得很久以前使用iframe 加script domain 声明,yahoo js ...

  6. AJAX跨域访问(不同域之间相互访问)

    目录 一.跨域: 二.同源策略: 三.解决Ajax跨域问题的方案: 方案一:设置响应头 方案二:jsonp 方案三:jQuery封装jsonp 方案四:代理机制(httpclient) 方案五:ngi ...

  7. jq跨域代理_用jQuery解决跨域访问

    浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时地都要疼上一疼.记得很久以前使用iframe 加script domain 声明,yahoo js ...

  8. jq跨域代理_jQuery 跨域访问问题解决方法

    jQuery 跨域访问问题解决方法 更新时间:2009年12月02日 01:25:19   作者: 浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时 ...

  9. SpringMVC中的异步请求-跨域访问

    发送异步请求: <%@page pageEncoding="UTF-8" language="java" contentType="text/h ...

最新文章

  1. 京沪深月薪均超2万元,清华近三成毕业生年入50万+ | 2019上半年中高端人才就业现状报告...
  2. python取出字符串中的偶数_从给定字符串中删除偶数个连续的重复字符
  3. Java重载容易引发的错误—返回类型
  4. ubuntu16.04下面git与github对应起来
  5. SAP Spartacus cx-page-layout 属性运行时的赋值原理, set 是如何被框架调用的?
  6. 我遇到的一个怪现象!
  7. 【Linux进程、线程、任务调度】四多核下负载均衡 中断负载均衡,RPS软中断负载均衡 cgroups与CPU资源分群分配 Linux为什么不是硬实时 preempt-rt对Linux实时性的改造
  8. Scilab 求解线性方程组示例(linsolve)
  9. plt python 画直线_Matplotlib:先搞明白plt. /ax./ fig再画
  10. sonar工具使用常见问题解决
  11. mysql建立作业_mysql创建作业及问题解决
  12. python槽怎么用_【Python成长之路】从零学GUI -- 多窗口跳转(信号与槽函数用法)...
  13. php 逗号千分位,数字格式化每三位添加逗号千分位 - 文章教程
  14. 软件测试用例质量不高?我教你如何编写高质量的测试用例!
  15. arduino uno r3引脚图_Arduino入门: 安装和熟悉Arduino IDE
  16. 谈一谈我对于目前国人对于EXTJS的错误看法
  17. 宏、函数、宏和函数的区别
  18. mysql5.6主从复制与基于amoeba实现读写分离
  19. LIO-SAM探秘第三章之代码解析(一) --- utility.h + imageProjection.cpp
  20. wxml 判断 小程序_微信小程序WXML-小样儿960

热门文章

  1. MySQL - java.sql.SQLException: Data truncated for column ‘xx‘ at row 1
  2. ssm基于javaweb的医疗健康知识管理系统设计与实现毕业设计源码
  3. ORB_SLAM2运行TUM数据和实时数据
  4. Mac中Caps Lock(大写锁定键)为Control键(Emacs解放小拇指.)
  5. maven3实战之仓库
  6. 华为公司专家组一行莅临物通博联调研指导
  7. 【算法题解】2022年第四届河南省CCPC大学生程序设计竞赛(喜提银牌)
  8. App开发难吗?主要的难点在哪?
  9. 挂载光盘linux内核升级,华为服务器通过mgmt口挂载光盘装系统及Linux系统rescue模式下修复内核...
  10. 订单导出(1688)