在 html5 中询问 canvas
ask about canvas in html5
我有 1 个 canvas,宽度为 300 像素,高度为 600 像素。我想用下面的代码绘制原始尺寸(60px,90px)的Image 1图像,但结果显示图像尺寸宽度= 60x和高度= 360px。请帮我修好。谢谢!
var c = document.getElementById("myCanvas");
ctx = c.getContext('2d');
var img = new Image();
img.src = './img/t2.png';
img.onload = () => {
ctx.drawImage(img, 0, 0, 60, 90)
};
首先,canvas有2个不同的size(尺寸),style size和internal size。样式大小用于页面显示,内部用于计算绘图元素坐标。
我没有看到您设置任何尺寸,我假设您只在 CSS 中设置样式尺寸。这意味着,内部尺寸默认为 300x150
下面是仅通过 CSS 设置 300x600 时的一个小演示:
var c = document.getElementById("myCanvas");
ctx = c.getContext('2d');
var img = new Image();
img.src = 'https://lh3.googleusercontent.com/9pPCK70Rw0k3wethMHb1qMaIB0VjeWLy57vYgSzKbF7oJuvO2nA0Nakk-95cvibWUDcEhYkfCKvdPKT03tXZd4M5jdhIEibLO9qw-XE=w1024-h683-n-l50-sg-rj';
img.onload = () => {
ctx.drawImage(img, 0, 0, 60, 90)
};
canvas
{
width: 300px;
height: 600px;
}
<canvas id="myCanvas"></canvas>
内部尺寸合适的情况也是如此:
var c = document.getElementById("myCanvas");
c.width = 300;
c.height = 600;
ctx = c.getContext('2d');
var img = new Image();
img.src = 'https://lh3.googleusercontent.com/9pPCK70Rw0k3wethMHb1qMaIB0VjeWLy57vYgSzKbF7oJuvO2nA0Nakk-95cvibWUDcEhYkfCKvdPKT03tXZd4M5jdhIEibLO9qw-XE=w1024-h683-n-l50-sg-rj';
img.onload = () => {
ctx.drawImage(img, 0, 0, 60, 90)
};
canvas
{
width: 300px;
height: 600px;
}
<canvas id="myCanvas"></canvas>
我有 1 个 canvas,宽度为 300 像素,高度为 600 像素。我想用下面的代码绘制原始尺寸(60px,90px)的Image 1图像,但结果显示图像尺寸宽度= 60x和高度= 360px。请帮我修好。谢谢!
var c = document.getElementById("myCanvas");
ctx = c.getContext('2d');
var img = new Image();
img.src = './img/t2.png';
img.onload = () => {
ctx.drawImage(img, 0, 0, 60, 90)
};
首先,canvas有2个不同的size(尺寸),style size和internal size。样式大小用于页面显示,内部用于计算绘图元素坐标。 我没有看到您设置任何尺寸,我假设您只在 CSS 中设置样式尺寸。这意味着,内部尺寸默认为 300x150
下面是仅通过 CSS 设置 300x600 时的一个小演示:
var c = document.getElementById("myCanvas");
ctx = c.getContext('2d');
var img = new Image();
img.src = 'https://lh3.googleusercontent.com/9pPCK70Rw0k3wethMHb1qMaIB0VjeWLy57vYgSzKbF7oJuvO2nA0Nakk-95cvibWUDcEhYkfCKvdPKT03tXZd4M5jdhIEibLO9qw-XE=w1024-h683-n-l50-sg-rj';
img.onload = () => {
ctx.drawImage(img, 0, 0, 60, 90)
};
canvas
{
width: 300px;
height: 600px;
}
<canvas id="myCanvas"></canvas>
内部尺寸合适的情况也是如此:
var c = document.getElementById("myCanvas");
c.width = 300;
c.height = 600;
ctx = c.getContext('2d');
var img = new Image();
img.src = 'https://lh3.googleusercontent.com/9pPCK70Rw0k3wethMHb1qMaIB0VjeWLy57vYgSzKbF7oJuvO2nA0Nakk-95cvibWUDcEhYkfCKvdPKT03tXZd4M5jdhIEibLO9qw-XE=w1024-h683-n-l50-sg-rj';
img.onload = () => {
ctx.drawImage(img, 0, 0, 60, 90)
};
canvas
{
width: 300px;
height: 600px;
}
<canvas id="myCanvas"></canvas>