Javascript HTML画布元素不显示图像

Javascript HTML画布元素不显示图像,javascript,html,css,html5-canvas,Javascript,Html,Css,Html5 Canvas,我试着用教程制作一个颜色选择器。我对canvas元素不是很熟悉,所以我只是使用该链接中的代码进行测试。我用几个不同的图像设置了图像src,但是没有一个出现 我不确定我必须改变什么才能让它出现,但我尝试了改变src,这不是问题所在。基本上,当您单击色轮(画布上的图像)时,会弹出带有rgba值的警报 如果让我猜的话,也许问题就在这里?我想你需要一个src,然后再告诉它加载时该怎么做 image.onload = () => canvasContext.drawImage(image, 0, 0

我试着用教程制作一个颜色选择器。我对canvas元素不是很熟悉,所以我只是使用该链接中的代码进行测试。我用几个不同的图像设置了图像src,但是没有一个出现

我不确定我必须改变什么才能让它出现,但我尝试了改变src,这不是问题所在。基本上,当您单击色轮(画布上的图像)时,会弹出带有rgba值的警报

如果让我猜的话,也许问题就在这里?我想你需要一个src,然后再告诉它加载时该怎么做

image.onload = () => canvasContext.drawImage(image, 0, 0, image.width, image.height);
image.src="https://i.stack.imgur.com/flqeC.jpg?s=256";

是一个jsfiddle,包含我的代码。我不是最有经验的,所以这可能是愚蠢的修复,但我感谢任何帮助

使用图像的本地路径将该图像保存在本地服务器中,否则将出现跨源问题,然后使用此代码

 function initColorPicker()
    {
        var canvasEl = document.getElementById('colorCanvas');
        var canvasContext = canvasEl.getContext('2d');

        var image = new Image(250, 250);

        image.onload = () => canvasContext.drawImage(image, 0, 0, image.width, image.height);
        image.src="https://i.stack.imgur.com/flqeC.jpg?s=256";

        canvasEl.addEventListener('click', function(mouseEvent) {
        {
          var imgData = canvasContext.getImageData(mouseEvent.offsetX, mouseEvent.offsetY, 1, 1);
          var rgba = imgData.data;

          alert("rgba(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + ", " + rgba[3] + ")");
        }

    })
    }
    initColorPicker();

在本地,它的工作很好,这里是完整的代码

<!DOCTYPE html>
    <html lang="en">
    <head>

        <meta charset="UTF-8">
        <title>Title</title>
        <style type="text/css">
            body {
                background-color: red;
            }

            #colorCanvas {
                border: 1px solid #000000;
                background-color:blue
            }
        </style>
    </head>
    <body>
    <h1>Test</h1>
    <canvas id="colorCanvas" class="color-canvas" width="250" height="250"></canvas>
    </body>
    <script type="text/javascript">
        function initColorPicker() {
            var canvasEl = document.getElementById('colorCanvas');
            var canvasContext = canvasEl.getContext('2d');

            var image = new Image(250, 250);

            image.onload = () => canvasContext.drawImage(image, 0, 0, image.width, image.height);
            image.src =  "http://localhost/test/assets/img/color.jpg";

            canvasEl.addEventListener('click', function (mouseEvent) {
                {
                    var imgData = canvasContext.getImageData(mouseEvent.offsetX, mouseEvent.offsetY, 1, 1);
                    var rgba = imgData.data;

                    alert("rgba(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + ", " + rgba[3] + ")");
                }

            })
        }

        initColorPicker();
    </script>
    </html>

标题
身体{
背景色:红色;
}
#彩色帆布{
边框:1px实心#000000;
背景颜色:蓝色
}
试验
函数initColorPicker(){
var canvasEl=document.getElementById('colorCanvas');
var canvasContext=canvasEl.getContext('2d');
var图像=新图像(250250);
image.onload=()=>canvasContext.drawImage(image,0,0,image.width,image.height);
image.src=”http://localhost/test/assets/img/color.jpg";
canvasEl.addEventListener('click',函数(mouseEvent){
{
var imgData=canvasContext.getImageData(mouseEvent.offsetX,mouseEvent.offsetY,1,1);
var rgba=imgData.data;
警报(“rgba”(“+rgba[0]+”、“+rgba[1]+”、“+rgba[2]+”、“+rgba[3]+”));
}
})
}
initColorPicker();

OP仍然无法获取
警报中的值
@AnuragSrivastava检查上述刚刚修改的代码,使用addEventListener并使用图像的本地路径我将其切换到本地路径,但仍然没有看到任何内容,我检查了路径是否正确,但画布中没有弹出任何内容。您必须调用
initColorPicker()
方法,但由于您使用的是来自不同域的图像,
getImageData()
将不起作用。尝试将映像下载到本地服务器并从那里引用它。只需复制整个代码并运行它就会显示警报