2017-08-10 70 views
-1

基本上标题是我的问题。我没有代码显示(我不知道从哪里开始),所有这些都需要使用纯JavaScript。如何从我的电脑上传图像并将其绘制到画布上?

+1

你可能要开始谷歌找到这个:https://stackoverflow.com/questions/22255580/javascript-upload-image-file-and-draw-it-into-a-canvas。 – Aron

+0

欢迎来到Stack Overflow!问“我从哪里开始”的问题通常太宽泛,并不适合本网站。人们有自己的方法来解决这个问题,正因为如此,没有一个正确的答案。请仔细阅读[**从哪里开始**](https://softwareengineering.meta.stackexchange.com/questions/6366/where-to-start/6367#6367),然后解决您的文章。 – 4castle

+0

@Aron感谢您的链接,下次您可以将此问题标记为重复 –

回答

0

查找drawImage函数(我推荐w3schools)。

在JavaScript中,你首先需要获得画布

const canvas = document.getElementById("canvasID"); 

而且theb画布

const context = canvas.getContext("2d"); 

的情况下的背景是要呼吁drawImage方法是什么。

context.drawImage(image, xPos, Ypos); 

您在的drawImage传递的图像应该被加载这样:

const image = new Image(); 
image.src = "path/image.jpg"; 
image.addEventListener('load',() => 
{ 
    context.drawImage(image, xPos, yPos); 
}); 

我会做的方式是如下:

window.addEventListener('load',() => 
{ 
    const canvas = document.getElementById("canvasID"); 
    const ctx = canvas.getContext("2d"); 
    const image = new Image(); 
    image.addEventListener('load',() => 
    { 
     ctx.drawImage(image, xPos, yPos); 
    }); 
}); 
+0

这不起作用。这里是我的代码: window.onload = function(){ var canvas = document.createElement(“canvas”); var c = canvas.getContext(“2d”); canvas.width = 400; canvas.height = 400; document.body.appendChild(canvas); c.fillStyle =“white”; c.fillRect(0,0,canvas.width,canvas.height); var image = new Image(); image.src =“C:\ Users \ Kids \ Desktop \ Game Maker Stuff \ Resources \已修改的Sprite资源\ Gaster Boss Fight \ gaster \ gaster_full”; image.addEventListener('load',()=> { context.drawImage(image,xPos,yPos); }); c.drawImage(image,0,0); } – Canvas16

+0

xPos和yPos arent值,您需要用实际数字替换它们。也尝试使用相对于html文件的路径。所以如果你的html文件在一个文件夹中,并且文件夹中的图像的路径是:../images/image.png。请记住,路径将来自html文件,即使您的html与html不同的文件 – danivdwerf

+0

我实际上并没有html文件。这是我第一次参与多文件程序。 @Aron这对我不起作用,因为该程序每次运行时都需要手动上传。我想要一个总是自动上传相同图像的程序。 – Canvas16

相关问题