【问题标题】:How do I upload an image from my PC and draw it onto the canvas? [duplicate]如何从 PC 上传图像并将其绘制到画布上? [复制]
【发布时间】:2017-08-10 20:38:06
【问题描述】:

基本上标题是我的问题。我没有要显示的代码(我不知道从哪里开始),所有这些都需要在纯 javascript 中。

【问题讨论】:

  • 你可能想从谷歌开始找到这个:stackoverflow.com/questions/22255580/…
  • 欢迎来到 Stack Overflow!询问“我从哪里开始”的问题通常过于宽泛,不适合本网站。人们有自己解决问题的方法,因此不可能有正确的答案。好好阅读Where to Start,然后写下你的帖子。
  • @Aron 感谢您的链接,下次您也可以将此问题标记为重复

标签: javascript image canvas upload


【解决方案1】:

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

在您的 javascript 中,您首先需要获取画布

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

还有画布的上下文

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);
    });
});

【讨论】:

  • 那行不通。这是我的代码: window.onload = function() { var canvas = document.createElement("canvas"); var c = canvas.getContext("2d");画布.宽度 = 400;画布.高度 = 400; document.body.appendChild(canvas); c.fillStyle = "白色"; c.fillRect(0,0,canvas.width,canvas.height);变种图像 = 新图像(); image.src = "C:\Users\Kids\Desktop\Game Maker Stuff\Resources\Modified Sprite Resources\Gaster Boss Fight\gaster\gaster_full"; image.addEventListener('load', () => { context.drawImage(image, xPos, yPos); }); c.drawImage(image,0,0); }
  • xPos 和 yPos 不是值,您需要用实际数字替换它们。还尝试使用相对于 .html 文件的路径。因此,如果您的 html 文件位于文件夹中,而图像位于文件夹中,则路径为:../images/image.png。请记住,路径将来自 html 文件,即使您的 html 与 html 位于不同的文件中
  • 我实际上没有 html 文件。这是我第一次尝试多文件程序。 @Aron这对我不起作用,因为该程序每次运行时都需要手动上传。我想要一个总是自动上传相同图像的程序。
  • 但是你如何在你的浏览器上测试它呢?
猜你喜欢
  • 2014-04-10
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多