Javascript 如何用图像填充html5画布网格方块?
我是html5的新手。我想画一个画布网格,并用来自API响应的图像填充每个网格。我有以下代码来绘制网格,但我正在努力用图像填充每个正方形。 这是js代码:Javascript 如何用图像填充html5画布网格方块?,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,我是html5的新手。我想画一个画布网格,并用来自API响应的图像填充每个网格。我有以下代码来绘制网格,但我正在努力用图像填充每个正方形。 这是js代码: window.onload = function(){ var c= document.getElementById('canvas'); var ctx=c.getContext('2d'); ctx.strokeStyle='white'; ctx.linWidth=4; for(i=0;i<
window.onload = function(){
var c= document.getElementById('canvas');
var ctx=c.getContext('2d');
ctx.strokeStyle='white';
ctx.linWidth=4;
for(i=0;i<=600;i=i+60)
{
ctx.moveTo(i,0);
ctx.lineTo(i,600);
ctx.stroke();
}
for(j=0; j<=600; j=j+60)
{
ctx.moveTo(0,j);
ctx.lineTo(600,j);
ctx.stroke();
}
}
window.onload=function(){
var c=document.getElementById('canvas');
var ctx=c.getContext('2d');
ctx.strokeStyle='white';
ctx.linWidth=4;
对于(i=0;i),如果不确切知道api响应返回图像的方式,很难回答您的问题。假设api响应返回图像本身(而不是JSON中的图像数据或类似内容),下面是一个解决方案:
html:
javascript:
window.onload = function() {
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.strokeStyle = "green";
ctx.lineWidth = 4;
//draw grid
for (let i = 0; i <= 10; i++) {
const x = i*60;
ctx.moveTo(x, 0);
ctx.lineTo(x, canvas.height);
ctx.stroke();
const y = i*60;
ctx.moveTo(0, y);
ctx.lineTo(canvas.width, y);
ctx.stroke();
}
//draw images
const p = ctx.lineWidth / 2; //padding
for (let xCell = 0; xCell < 10; xCell++) {
for (let yCell = 0; yCell < 10; yCell++) {
const x = xCell * 60;
const y = yCell * 60;
const img = new Image();
img.onload = function() {
ctx.drawImage(img, x+p, y+p, 60-p*2, 60-p*2);
};
//TODO: set img.src to your api url instead of the dummyimage url.
img.src = `https://dummyimage.com/60x60/000/fff&text=${xCell},${yCell}`;
}
}
};
window.onload=function(){
const canvas=document.getElementById(“canvas”);
const ctx=canvas.getContext(“2d”);
ctx.strokeStyle=“绿色”;
ctx.lineWidth=4;
//绘制网格
对于(让我=0;我嘿@Rocky Sims。谢谢你的解决方案。这个链接对我真的很有帮助。
window.onload = function() {
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.strokeStyle = "green";
ctx.lineWidth = 4;
//draw grid
for (let i = 0; i <= 10; i++) {
const x = i*60;
ctx.moveTo(x, 0);
ctx.lineTo(x, canvas.height);
ctx.stroke();
const y = i*60;
ctx.moveTo(0, y);
ctx.lineTo(canvas.width, y);
ctx.stroke();
}
//draw images
const p = ctx.lineWidth / 2; //padding
for (let xCell = 0; xCell < 10; xCell++) {
for (let yCell = 0; yCell < 10; yCell++) {
const x = xCell * 60;
const y = yCell * 60;
const img = new Image();
img.onload = function() {
ctx.drawImage(img, x+p, y+p, 60-p*2, 60-p*2);
};
//TODO: set img.src to your api url instead of the dummyimage url.
img.src = `https://dummyimage.com/60x60/000/fff&text=${xCell},${yCell}`;
}
}
};