[英]How can I draw triangle on 4 corner of image using canvas JavaScript
[英]How can i call images from folders and how to draw image with canvas(javascript)?
我想在javascript
中用canvas
繪制圖像文件,但我不知道為什么它不起作用。
這是我調用它的步驟。
{
imageSequence: [0, 5],
imgArray: [],
canvas: document.querySelector("#imgadd"),
context: document.querySelector("#imgadd").getContext("2d")
}
imgArray
並使用 function 自動添加圖像 //image indexing
let sequence = Math.round(sceneInfo[0].imageSequence)
//img add function
function addImage() {
let imgadd;
for (let i = 1; i < 7; i++) {
imgadd = new Image();
imgadd.src = `./img/${i}.jpg`;
sceneInfo[0].imgArray.push(imgadd.src);
}
}
addImage()
3 添加 window 事件以在 window 加載時繪制圖像
//when window load call function
window.addEventListener('onload', () => {
sceneInfo[0].context.drawImage(sceneInfo[0].imgArray[sequence], 0, 0);
})
這是我的全部代碼(設置匿名函數)
(() => { //canvas setting const sceneInfo = [{ imageSequence: [0, 5], imgArray: [], canvas: document.querySelector("#imgadd"), context: document.querySelector("#imgadd").getContext("2d") }]; //image indexing let sequence = Math.round(sceneInfo[0].imageSequence) //img add function function addImage() { let imgadd; for (let i = 1; i < 7; i++) { imgadd = new Image(); imgadd.src = `./img/${i}.jpg`; sceneInfo[0].imgArray.push(imgadd.src); } } addImage(); //when window load call function window.addEventListener('load', (e) => { sceneInfo[0].context.drawImage(sceneInfo[0].imgArray[sequence], 0, 0); }) console.log(sceneInfo[0].imgArray[sequence]); })();
<canvas id="imgadd"></anvas>
我想知道當我console.log(sceneInfo[0].imgArray[sequence]);
我推送圖像的數組,控制台 window 返回“未定義”我不知道原因。
謝謝你。
您的 imageSequence 是一個數組,沒有 Math.round 數組,這將給出 NaN
const sceneInfo = [{ imageSequence: [0, 5] }]; let sequence = Math.round(sceneInfo[0].imageSequence) console.log(sceneInfo[0].imageSequence); console.log(sequence);
我不知道為什么復雜的場景信息sceneInfo
...
但這是我嘗試完全繪制圖像並保持代碼與原始代碼接近的嘗試。
(() => { //canvas setting const sceneInfo = [{ imageSequence: [0, 5], imgArray: [], canvas: document.querySelector("#imgadd"), context: document.querySelector("#imgadd").getContext("2d") }]; //img add function function addImage() { let imgadd; for (let i = 1; i < 7; i++) { let imgadd = new Image(); sceneInfo[0].imgArray.push(imgadd); imgadd.onload = () => { sceneInfo[0].context.drawImage(sceneInfo[0].imgArray[i-1], i*40, i*10); console.log(sceneInfo[0].imgArray[i-1].src) }; imgadd.src = `http://swagger-net-test.azurewebsites.net/api/Image/?${i}`; } } addImage(); })();
<canvas id="imgadd" width=600></canvas>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.