java - 如何加载文件夹中的所有图像? (处理,Java)

标签 java image processing loadimage

请帮助我。我想在不知道数据名的情况下将多个图像加载到此处理草图中。这样我总是可以将 .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/

相关文章:

python - 如何保存图片数组以及与其相关的信息?

android - 处理 - 错误

java - 加工重力(楼层)

java - 我在处理中有两个 NullPointerException,这两个动画线程错误我不知道如何解决

使用 C 复制从 tif 文件生成的 8 位灰度 bmp 文件

java - MongoDB + HibernateOGM + Spring Boot 自动创建数据库

java - 如何使用 Gradle 创建可执行 JAR?

java - 是否有系统范围的 Preferences API 版本?

java - 添加 Spring Security 后,我的 spring 应用程序停止运行

image - ExtJS 4 : How to auto scale an image?(无裁剪)