javascript - Image Preloading in Canvas - Stack Overflow

I'm drawing an Image on the canvas using the drawImage function. This is how Im setting the src pr

I'm drawing an Image on the canvas using the drawImage function. This is how Im setting the src property of the image:

var img = new Image(); // Create new Image object
img.src = 'test.php?filename=myfile.jpg'

and then

oCanvas.width = 600; oCanvas.height = 400; oContext.drawImage(img, 0, 0, 600, 400);

The problem is that if the src isn't set then I get the foll error:"uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]" . I know I get this error coz the image hasnt finished loading. I added an alert just before the call to drawImage function to let the image finish loading and it seems to work. But it's a pain in the neck. How do I check if the image has finished loading? BTW I have to set the src property by calling a php file.

I'm drawing an Image on the canvas using the drawImage function. This is how Im setting the src property of the image:

var img = new Image(); // Create new Image object
img.src = 'test.php?filename=myfile.jpg'

and then

oCanvas.width = 600; oCanvas.height = 400; oContext.drawImage(img, 0, 0, 600, 400);

The problem is that if the src isn't set then I get the foll error:"uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]" . I know I get this error coz the image hasnt finished loading. I added an alert just before the call to drawImage function to let the image finish loading and it seems to work. But it's a pain in the neck. How do I check if the image has finished loading? BTW I have to set the src property by calling a php file.

Share Improve this question asked May 27, 2010 at 13:59 smokingunssmokinguns 7092 gold badges10 silver badges24 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 4

Define this before you set the image's src attribute.

// Create new Image object
var img = new Image(); 

img.onload = function() {
    // add it to the canvas
    oCanvas.width = 600; oCanvas.height = 400;
    oContext.drawImage(img, 0, 0, 600, 400);
};

img.src = 'test.php?filename=myfile.jpg';

(it needs to be defined first because otherwise IE7 will not fire it).

Also, if you wanted to do something with that error, use JavaScript's try/catch.

try {
    oCanvas.width = 600; oCanvas.height = 400;
    oContext.drawImage(img, 0, 0, 600, 400);
} catch (exception) {
    alert('something went wrong!');
};

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745161997a4614427.html

相关推荐

  • javascript - Image Preloading in Canvas - Stack Overflow

    I'm drawing an Image on the canvas using the drawImage function. This is how Im setting the src pr

    3小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信