Javascript new Image()未加载图像

Javascript new Image()未加载图像,javascript,image,Javascript,Image,我正在通过javascript加载url创建一个新图像,但当在屏幕上加载url时,却没有。通过进一步调查,我发现加载图像后,图像没有设置高度和宽度。这是我用来创建和绘制图像的代码 var img = createImage("./Images/saveButton.png"); context.drawImage(img, 50, 50); var oldback = context.getImageData(0, 0, 64, 64); context.drawImage(img, 50, 5

我正在通过javascript加载url创建一个新图像,但当在屏幕上加载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;
}
问题是,如果图像已加载,则只能将其绘制到画布元素,因此必须提供
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);
});

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

var createImage = function (url) {
    var img = new Image();
    img.src = url;
    return img;
}
问题是,如果图像已加载,则只能将其绘制到画布元素,因此必须提供
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);
});

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

var createImage = function (url) {
    var img = new Image();
    img.src = url;
    return img;
}
问题是,如果图像已加载,则只能将其绘制到画布元素,因此必须提供
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);
});

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

var createImage = function (url) {
    var img = new Image();
    img.src = url;
    return img;
}
问题是,如果图像已加载,则只能将其绘制到画布元素,因此必须提供
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);
});

我不完全理解你的代码/问题,但你必须等待图像加载。我不完全理解你的代码/问题,但你必须等待图像加载。我不完全理解你的代码/问题,但你必须等待图像加载。我不完全理解你的代码/问题,但你必须等待图像加载“试试这个”并不是一个好答案。请解释你的答案是什么以及为什么它会起作用。代码转储答案不好!另外,请看一下,尤其是“试试这个”并不是一个好答案。请解释你的答案是什么以及为什么它会起作用。代码转储答案不好!另外,请看一下,尤其是“试试这个”并不是一个好答案。请解释你的答案是什么以及为什么它会起作用。代码转储答案不好!另外,请看一下,尤其是“试试这个”并不是一个好答案。请解释你的答案是什么以及为什么它会起作用。代码转储答案不好!另外,请看一下,尤其是。