Javascript new Image() 不加载图像

标签 javascript image

我正在通过 javascript 加载 url 创建一个新图像,但是当将其加载到屏幕上时却没有,通过进一步调查我发现加载图像后图像没有设置高度和宽度。这是我用来创建和绘制图像的代码。

var img = createImage("./Images/saveButton.png");
context.drawImage(img, 50, 50);
var oldback = context.getImageData(0, 0, 64, 64);
context.drawImage(img, 50, 50);
var imgData = context.getImageData(0, 0, 64, 64);

为什么会发生这种情况,因为我相信我已经正确完成了所有操作?

最佳答案

我不知道 createImage 做了什么,但我想它只是创建一个新实例,如下所示:

var createImage = function (url) {
    var img = new Image();
    img.src = url;
    return img;
}

问题是图像只能在已加载的情况下绘制到 Canvas 元素,因此您必须提供 onload 回调:

var createImage = function (url, callback) {
    var img = new Image();
    callback();
    img.src = url;
    return img;
};

createImage("./Images/saveButton.png", function () {
    context.drawImage(img, 50, 50);
    var oldback = context.getImageData(0, 0, 64, 64);
    context.drawImage(img, 50, 50);
    var imgData = context.getImageData(0, 0, 64, 64);
});

关于Javascript new Image() 不加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084730/

相关文章:

javascript - 使用 DOM 打印数组内容

javascript - Axios请求内部调用函数(then)[Vuejs]

java - 如何保护我的 jar 资源不被提取?

css - CSS : is there a webkit alternative for -moz-crisp-edges? 图像缩放

javascript - 在列表中单击时更改 img src

javascript - 需要使用javascript降低图像的高度

javascript - 需要默认 CSS 按钮 (JQuery)

javascript - 无法将数组格式的字符串(例如 "[55]")转换为数组

javascript - 模板字符串上的 netbeans javascript 错误(反引号)

image - 如何使用 x11 在服务器上显示 jpeg 图像?