gpt4 book ai didi

javascript - 从本地路径加载图像并将其绘制在 Canvas 上

转载 作者:数据小太阳 更新时间:2023-10-29 05:05:54 25 4
gpt4 key购买 nike

我想在 Canvas 上绘制图像,其中图像的源将由用户动态设置。我在尝试为图像设置 src 时遇到以下错误:

Not allowed to load local resource: file:///D:/My%20Picsb.jpg'

有没有办法从本地驱动器加载文件以在 Canvas 上绘制它们?

var img = new Image();
img.onload = function () {
context.drawImage(img, 20, 20, 50, 50);
};

img.src = "D:\My Pics\tb.jpg";

最佳答案

出于安全原因,您想要的不会起作用。但是,您可以做的是添加一个文件输入字段并将其上传到 Canvas ,如下所示:

HTML

<input type="file" id="file_input">

JS

$("#file_input").change(function(e){


var URL = window.webkitURL || window.URL;
var url = URL.createObjectURL(e.target.files[0]);
var img = new Image();
img.src = url;


img.onload = function() {

img_width = img.width;
img_height = img.height;

context.drawImage(img, 0, 0, img_width, img_height);

}


});

不久前我遇到了和你一样的问题,这段代码在将本地镜像加载到 Canvas 上时完成了工作。但是,我还建议最终调整图像的大小,以使其适合 Canvas 。我使用了以下代码(将 460 替换为您的 Canvas 大小)。

var new_x = 0;
var new_y = 0;

if (img_width > img_height) {
new_x = 460;
new_y = (460*img_height)/img_width;
}

else if (img_height > img_width) {
new_x = (460*img_width)/img_height;
new_y = 460;
}

else {
new_x = 460;
new_y = 460;
}

context.drawImage(img, 0, 0, new_x, new_y);

关于javascript - 从本地路径加载图像并将其绘制在 Canvas 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com