javascript - HTML5 Canvas - 图像文件不会显示在 Canvas 上

标签 javascript html canvas html5-canvas

我正在尝试让图像文件显示在 Canvas 上,但似乎无论我尝试什么它都不会显示在 Canvas 上。我已经尝试了几个在网上找到的示例,但似乎没有任何效果。

如果您能就可能出现的问题提供任何帮助,我将不胜感激。

这是我的 HTML:

使用 JavaScript

        <h3>Puzzle Time</h3>          


        <canvas onclick="fillCanvas()" id="myCanvas" width="600" height="450" style="border:1px solid #CCCCCC;"></canvas>          

        <script type="text/javascript" src="puzzle.js"></script>
        <script src="//code.jquery.com/jquery-1.10.2.js"></script>
        <script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>               


    </div>

这是我的 JavaScript:

function fillCanvas()
{
   alert("filling Canvas");
   var cxt = document.getElementById("myCanvas").getContext("2d");
   var img = new Image();
   img.src = "Images/Chrysanthemum_small.jpg";

   img.onload = function()
   {
     ctx.drawImage(img,600,450);   
   };
   alert("done with Canvas");


}

我可以使用该功能,但不会出现任何图像。

我已尝试将图像元素添加到 HTML 并调用函数中的元素以将其绘制在 Canvas 上,但该函数将再次执行但 Canvas 上不会显示任何图像。

最佳答案

您的代码应该是:

function fillCanvas(){
alert("filling Canvas");
var ctx = document.getElementById("myCanvas").getContext("2d");
var img = new Image();

img.onload = function()
{
ctx.drawImage(img,0,0,600,450);   
};
img.src = "Images/Chrysanthemum_small.jpg";
alert("done with Canvas");}

您将起始坐标设置为 600 和 450,以便在 Canvas 外绘制图像, Onload函数最好在img.src之前。

关于javascript - HTML5 Canvas - 图像文件不会显示在 Canvas 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25272889/

相关文章:

javascript - 全局对象在 Spidermonkey 中意味着什么? JS_class 和 JS_NewGlobalObject 的作用是什么?

javascript - 在 React/TypeScript 中的循环内切换 CSS 类

html - 如何让我的 flexbox 导航栏固定在屏幕顶部?

javascript - 使用kinetic js在 Canvas 中显示多个对象

javascript - Canvas 更新问题

javascript - 如何在 Canvas 上制作弹跳球的动画

php - 使用代码检查器编辑 DOM 客户端来操纵服务器端行为

javascript - 给 Canvas 中的图像着色?

php - 每当我的代码中有样式或包含任何带有 css/styles 的内容时,都会弹出奇怪的 HTML

html - 将整个标签元素对齐到其父 div 的底部