鱼C论坛

 找回密码
 立即注册
查看: 3183|回复: 3

[已解决]HTML庖丁解牛0078中使用getImageData导致的跨域问题

[复制链接]
发表于 2020-1-13 17:20:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如图,在0078的例子中,使用getImageData后会出现canvas污染的问题,参考了CSDN上提到的增加img.crossOrigin = '';img.crossOrigin="anonymous"都没法解决,请问有人知道这个吗?萌新自学中,欢迎讨论。
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>鱼C工作室</title>
  6.     <style type="text/css">
  7.         html,body{
  8.             height: 100%;
  9.             margin: 333px;
  10.         }
  11.     </style>
  12. </head>
  13. <body>
  14. <canvas id="fishcCanvas" width="1000" height="999">大兄弟,你的浏览器咋不支持Canvas呢?</canvas>
  15. <script type="text/javascript">
  16.     var canvas = document.getElementById("fishcCanvas");
  17.     var context = canvas.getContext("2d");
  18.     var img = new Image();
  19.     img.src = "FishC.png";

  20.     img.onload = function () {

  21.         context.drawImage(img,0,0,530,530);
  22.         
  23.         img = context.getImageData(0,0,530,530);


  24.     var pixcount = 530 * 530;
  25.     for(var i = 0 ;i < pixcount * 4 ; i += 4)
  26.     {
  27.         var myRed = img.data[i]; //红色
  28.         var myGreen = img.data[i +1 ]; //绿色
  29.         var myBlue = img.data[i + 2]; //蓝色
  30.         var myAlpha = img.data[i + 3];//透明度
  31.         var myGray = parseInt((myRed + myGreen + myBlue) / 3);//均值获得灰度值
  32.         img.data[i] = myGray;
  33.         img.data[i+1]=myGray;
  34.         img.data[i+2]=myGray;
  35.     }

  36.     context.putImageData(img,0,0);
  37.     }
  38. </script>
  39. </body>
  40. </html>
复制代码
最佳答案
2020-1-14 17:25:45
最简单就是搭建一个本地服务器环境。

Node(下载 VSCode,配置即可) 或者 XAMPP(参看:教你如何在本地搭建服务器测试环境
1578906969(1).png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-14 17:25:45 | 显示全部楼层    本楼为最佳答案   
最简单就是搭建一个本地服务器环境。

Node(下载 VSCode,配置即可) 或者 XAMPP(参看:教你如何在本地搭建服务器测试环境
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-1-14 19:30:06 | 显示全部楼层
不二如是 发表于 2020-1-14 17:25
最简单就是搭建一个本地服务器环境。

Node(下载 VSCode,配置即可) 或者 XAMPP(参看:教你如何在本地 ...

好的老哥,我试试哈~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-16 11:10:03 | 显示全部楼层
不二如是 发表于 2020-1-14 17:25
最简单就是搭建一个本地服务器环境。

Node(下载 VSCode,配置即可) 或者 XAMPP(参看:教你如何在本地 ...

XAMPP官网点开下载后在弹出下载窗口前有较长的一段等待时间,请耐心等待。(后面来的小伙伴记住啦!)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-5 14:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表