【问题标题】:can't draw image on canvas after clearRectclearRect 后无法在画布上绘制图像
【发布时间】:2013-03-07 15:44:21
【问题描述】:

我在使用以下代码时遇到了一些问题。本质上,这包含在图像上传器中。所以一旦上传者完成它的回调,下面的代码就会被执行:

var c = canvas.getContext('2d');
var logoImage = new Image();
logoImage.onload = function() {

   c.clearRect(0, 0, canvas.width, canvas.height);
   c.drawImage(logoImage, 0, 0, 200, 300); // i've simplified this call...
}
logoImage.src = "/path/to/" + fileName;

所以这是第一次。但我希望它在以后的时间里也能奏效。因此,当上传另一个图像时,画布会被清除并绘制该图像。相反,会发生画布被清除但没有进一步绘制的情况......

有什么想法吗?

【问题讨论】:

  • 尝试通过jsfiddle.net发布示例
  • 您发布的代码看起来不错,因此我们需要更多信息。如果您在c.clearRect 之前添加console.log("over 'er"),它是否每次都显示在控制台中?
  • 文件名好像有问题!检查您获取图像和警报文件名的代码以检查它是否正确!

标签: javascript html canvas html5-canvas


【解决方案1】:

试试这个:

替换

 c.clearRect(0, 0, canvas.width, canvas.height);

与:

canvas.width=canvas.width;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2014-05-17
    • 2023-04-02
    • 2018-12-09
    相关资源
    最近更新 更多