如何将现有<img/>绘制到画布

时间:2013-07-17 06:31:52

标签: javascript html canvas

我知道我可以使用javascript执行此操作:

var ctx = getCanvas('testCanvas').getContext('2d'); // get Canvas context
var img = new Image();
img.src = 'test.png';
img.onload = function(){
    ctx.drawImage(img, 200, 200); // x, y, width, height
}

但是如何将现有标签绘制到画布:

在html中:

<img src='test.png'>

为什么我要这样做?我想使用pagespeed优化图像加载

5 个答案:

答案 0 :(得分:4)

你问题的第一个谷歌热门是有希望的:

var c=document.getElementById("testCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("existingHTMLImageElementId");
ctx.drawImage(img,10,10);

请参阅w3Schools

答案 1 :(得分:1)

假设您的ID为#image,则可以使用

var img = document.getElementById("image");
var ctx = getCanvas('testCanvas').getContext('2d'); // get Canvas context
img.onload = function(){
    ctx.drawImage(img, 200, 200); // x, y, width, height
}

答案 2 :(得分:1)

假设您有<img>标记,其ID为image。您可以使用getElementById方法获取图像引用。如下所示:

var img = document.getElementById("image");

然后使用上面的代码。

答案 3 :(得分:1)

您可以将图像src提供给新图像

var ctx = getCanvas('testCanvas').getContext('2d'); // get Canvas context
var img = new Image();
img.src = document.getElementById('testImage').src;
img.onload = function(){
    ctx.drawImage(img, 200, 200); // x, y, width, height
}

为您的图片元素添加ID

<img src='test.png' id="testImage">

答案 4 :(得分:1)

尝试

var canvas=document.getElementById("test");
var ctx=canvas.getContext("2d");
var img=document.getElementById("imgID");
ctx.drawImage(img,10,10);