小编May*_*sya的帖子

HTML5 Canvas getImageData安全错误

我想将彩色图像更改为灰度,但是当我尝试使用getImageData时出现安全性错误.

Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data. 
Run Code Online (Sandbox Code Playgroud)

我知道这个错误已经到处讨论过,但没有一个有明确的解决方案.请帮忙!

<html>
<script>
function grayscale()
{
    var myCanvas = document.getElementById("c1");
    var myCanvasContext = myCanvas.getContext("2d");

    var img = document.getElementById("myImage");
    img.crossOrigin = "anonymous";

    var imgWidth = img.width;
    var imgHeight = img.height;

    myCanvas.width = imgWidth;
    myCanvas.height = imgHeight;

    myCanvasContext.drawImage(img,0,0);

    var imageData = myCanvasContext.getImageData(0,0, imgWidth, imgHeight);

    for (j=0; j<imageData.height; i++)
    {
            for (i=0; i<imageData.width; j++)
            {
                    var index=(i*4)*imageData.width+(j*4);
                    var red=imageData.data[index];
                    var green=imageData.data[index+1];
                    var blue=imageData.data[index+2];
                    var alpha=imageData.data[index+3];
                    var …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas cors html5-canvas

7
推荐指数
1
解决办法
5885
查看次数

标签 统计

canvas ×1

cors ×1

html5 ×1

html5-canvas ×1

javascript ×1