请帮助我。我想在不知道数据名的情况下将多个图像加载到此处理草图中。这样我总是可以将 .png
图像放入数据文件夹中,程序会自动加载它们。我在一些论坛中进行了搜索,但除了我已经找到的一些代码之外没有找到任何内容使用过,但运行不正常。
程序一启动它就会在 image();
处给我一个 NullPointerException
这是控制台输出:
4096
D:\Program Files\processing-3.3.7\PROJECTS\Blendertutorial\data
[0] "1.png"
[1] "2.png"
[2] "3.png"
[3] "4.png"
[4] "5.png"
[5] "6.png"
[6] "7.png"
另外为什么folder.list();
输出这么大的数字?我那里只有 7 张图片...
import java.io.File;
String fileExtension = ".png";
java.io.File folder = new java.io.File(sketchPath("/PROJECTS/Blendertutorial/data"));
java.io.FilenameFilter extfilter = new java.io.FilenameFilter() {
boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(fileExtension);
}
};
PImage images;
String[] imageNames;
int i=0;
long folderInhalt = folder.length();
void setup(){
size(500,500);
println(folder.length());
println(folder);
printArray(imageNames);
imageNames = folder.list(extfilter);
}
void draw(){
if(mousePressed){
images = loadImage(folder+"/"+imageNames[0]);
println(images);
println(imageNames[i]);
delay(200);
i++;
}
image(images,0,0); //NULL POINTER EXCEPTION!
}
最佳答案
当调用 draw() 但 mousePressed
为 false 时,代码中会发生什么情况?
考虑你的代码:
PImage images;
...
...
...
void draw(){
if(mousePressed){
images = loadImage(folder+"/"+imageNames[0]);
println(images);
println(imageNames[i]);
delay(200);
i++;
}
image(images,0,0); //NULL POINTER EXCEPTION!
}
您已声明图像
,但尚未实例化它。
在mousePressed==false
的情况下,images
将保持为空。
此行为可以解释您的 NullPointerException
- 您正在使用 null 值参数调用 image
方法。
关于java - 如何加载文件夹中的所有图像? (处理,Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50217923/