Skip to content

Instantly share code, notes, and snippets.

@markknol
Created September 20, 2023 12:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markknol/2e847f2c883e28db798f1cb10fb2add1 to your computer and use it in GitHub Desktop.
Save markknol/2e847f2c883e28db798f1cb10fb2add1 to your computer and use it in GitHub Desktop.
Make spritesheet of bunch of images
<canvas width="4096" height="3072" id=canvas></canvas>
<script>
let ctx = canvas.getContext`2d`;
window.onload = async () => {
let grid = 12;
canvas.width = grid*260; // grid * tile width
canvas.height = grid*220; // grid * tile height
for(let i=0;i<grid*grid;i++) {
let image = await loadImage(`render_${(""+i).padStart(5,"0")}.png`);
let idx = i%grid, idy = i/grid|0;
ctx.drawImage(image, idx*image.width, idy*image.height);
}
}
function loadImage(src) {
return new Promise((resolve, reject) => {
let img = new Image();
img.onload = () => resolve(img);
img.onerror = reject;
img.src = src;
});
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment