私のプロジェクトの 1 つで、次のコードを使用して、JavaScript を使用して html5 キャンバスに png 画像をレンダリングすることに成功しました。
var sizeIcon = new Image();
sizeIcon.draw = function() {
ctx.drawImage(sizeIcon, tooltip.x + 10, tooltip.y + 10);
};
sizeIcon.onload = sizeIcon.draw;
sizeIcon.src = "./images/icons/ruler.png";
tooltip.icons.push(sizeIcon);
ロードするアイコンが複数あるため、次の関数を実装しました。
var imageLoader = function(x, y, src) {
var image = new Image();
image.draw = function() {
ctx.drawImage(image, x, y);
};
image.onload = image.draw;
image.src = src;
tooltip.icons.push(image);
};
imageLoader(tooltip.x + 10, tooltip.y + 10, "./images/icons/ruler.png");
tooltip.icons はグローバルにアクセス可能な配列です。この関数は何もしません (コンソールにエラーも警告も表示しません)。tooltip.icons[n] = new Image();
また、成功しない (where )のようなものを使用して、tooltip.icons 配列を直接埋めようとしましたn = tooltip.icons.length
。私が理解していない JavaScript スコープの一部がおそらくあります。