请帮我。我想在不知道数据名称的情况下将多个图像加载到此处理草图中。这样我就可以始终将.png
图像放到数据文件夹中,并且程序会自动将其加载到其中。我在一些论坛中进行了搜索,但是除了我已经使用过的某些代码之外,没有找到任何东西,但是它无法正常运行。
一旦程序启动它给了我一个NullPointerException
在image();
这是控制台输出:
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
是错误的?
考虑您的代码:
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!
}
您已经声明images
但尚未实例化它。
在的情况下mousePressed==false
,images
将保持为空。
此行为可以解释您NullPointerException
-您正在image
使用带有空值参数的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句