在在线编辑器之外使用 p5js 时无法加载图像
Image not able to load when using p5js outside of online editor
我正在使用 p5js,我正在尝试在我的目录中加载和显示一些图像。我正在尝试在预加载函数中使用 loadImage()
方法来加载图像。但是,当我 运行 程序时,我得到这些错误
Fetch API cannot load file:///Users/mainuser/Documents/school/Senior/FinalProject/imgs/arms_up.png. URL scheme "file" is not supported.
p5.js says: It looks like there was a problem loading your image. Try checking if the file path (imgs/arms_up.png) is correct, hosting the file online, or running a local server. (More info at https://github.com/processing/p5.js/wiki/Local-server)
TypeError: Failed to fetch
at fetch (p5.js:28096)
at p5._main.default.loadImage (p5.js:80673)
at p5.js:62949
at preload (script.js:118)
at p5._start (p5.js:62905)
at new p5 (p5.js:63261)
at _globalInit (p5.js:62189)
我的 imgs
文件夹与我的 index.html
在同一个文件夹中
我的猜测是 fetch()
可能需要实际的 URL 而不是文件路径。
还有其他人 运行 解决过这个问题吗?我在下面附上了我的代码(我取出了不相关的代码)。谢谢!
index.html
<!DOCTYPE HTML>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@teachablemachine/pose@0.8/dist/teachablemachine-pose.min.js"></script>
<script src="script.js"></script>
<script src="https://cdn.jsdelivr.net/npm/p5@1.4.0/lib/p5.js"></script>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Pose Game</h1>
<button type="button" onclick="init()">Start Game!</button>
<button type="button" onclick="restart_game()">Restart Game</button>
<div id="main-div">
<div id="flex-div">
<div id="webcam-div">
<canvas id="canvas"></canvas>
</div>
<div id="p5-div"></div>
</div>
</div>
</body>
</html>
script.js
let arms_up_png;
let left_arm_up;
let right_arm_up;
function preload() {
arms_up_png = loadImage("imgs/arms_up.png");
}
function setup() {
var canvas = createCanvas(400, 400);
canvas.parent('p5-div');
}
function draw() {
background('green');
image(arms_up_png, 50, 50, 20, 20);
}
你说得对 fetch()
不能使用本地文件路径,因为 p5js 需要加载图像文件的内容才能显示它,你也不能使用 p5js 的本地文件路径 loadImage()
函数。为了在本地 运行 您的草图,您需要使用本地网络服务器。 Visual Studio Code Live Server extension 对此非常方便。
我正在使用 p5js,我正在尝试在我的目录中加载和显示一些图像。我正在尝试在预加载函数中使用 loadImage()
方法来加载图像。但是,当我 运行 程序时,我得到这些错误
Fetch API cannot load file:///Users/mainuser/Documents/school/Senior/FinalProject/imgs/arms_up.png. URL scheme "file" is not supported.
p5.js says: It looks like there was a problem loading your image. Try checking if the file path (imgs/arms_up.png) is correct, hosting the file online, or running a local server. (More info at https://github.com/processing/p5.js/wiki/Local-server)
TypeError: Failed to fetch
at fetch (p5.js:28096)
at p5._main.default.loadImage (p5.js:80673)
at p5.js:62949
at preload (script.js:118)
at p5._start (p5.js:62905)
at new p5 (p5.js:63261)
at _globalInit (p5.js:62189)
我的 imgs
文件夹与我的 index.html
我的猜测是 fetch()
可能需要实际的 URL 而不是文件路径。
还有其他人 运行 解决过这个问题吗?我在下面附上了我的代码(我取出了不相关的代码)。谢谢!
index.html
<!DOCTYPE HTML>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@teachablemachine/pose@0.8/dist/teachablemachine-pose.min.js"></script>
<script src="script.js"></script>
<script src="https://cdn.jsdelivr.net/npm/p5@1.4.0/lib/p5.js"></script>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Pose Game</h1>
<button type="button" onclick="init()">Start Game!</button>
<button type="button" onclick="restart_game()">Restart Game</button>
<div id="main-div">
<div id="flex-div">
<div id="webcam-div">
<canvas id="canvas"></canvas>
</div>
<div id="p5-div"></div>
</div>
</div>
</body>
</html>
script.js
let arms_up_png;
let left_arm_up;
let right_arm_up;
function preload() {
arms_up_png = loadImage("imgs/arms_up.png");
}
function setup() {
var canvas = createCanvas(400, 400);
canvas.parent('p5-div');
}
function draw() {
background('green');
image(arms_up_png, 50, 50, 20, 20);
}
你说得对 fetch()
不能使用本地文件路径,因为 p5js 需要加载图像文件的内容才能显示它,你也不能使用 p5js 的本地文件路径 loadImage()
函数。为了在本地 运行 您的草图,您需要使用本地网络服务器。 Visual Studio Code Live Server extension 对此非常方便。