使用PImage获取最新的文件夹(处理)

时间:2017-07-23 17:06:54

标签: java image processing

我试图弄清楚如何挑选最近创建的文件夹以加载到PImage中。我想不出办法。

我有两个草图,一个创建一堆图像,另一个加载它们。这是加载它们的草图。

每次运行另一个草图时,都会在草图数据文件夹中创建一个新文件夹。我需要选择最近创建的文件夹并将其加载到我的PImage中。它看起来像http://imgur.com/a/u1jF0
因此,下一个文件夹的名称将被称为test_segments2,然后测试segments3 ...依此类推。

代码:

final int len = 25;
final float thresh = 170;

boolean newDesign = false;
PImage pic;

ArrayList<PImage> imgContainer;
int n = 1;

void setup() {
    size(800, 800, P2D);
    colorMode(RGB, 255);
    background(250, 250, 250);
    rectMode(CENTER);
    // imageMode(CENTER);

    pic = loadImage("hand.jpg");
    pic.resize(width, height);
    color c1 = color(200, 25, 25);
    color c2 = color(25, 255, 200);

    imgContainer = new ArrayList<PImage>();
    PImage pimg1 = loadImage("THIS IS WHERE I NEED THE PATH OF MOST RECENT FOLDER CREATED TO GO");
    pimg1.resize(50, 50);
    noLoop();
    noStroke();
}

void draw() {
    if (newDesign == false) {
        return;
    }

    pic.loadPixels();

    for (int y = 0; y < height; y += 40) {
        for (int x = 0; x < width; x += 40) {
            int index = y * width + x;
            color pixelValue = pic.pixels[index];
            color rgb = pixelValue;
            int r = (rgb >> 16) & 0xFF; // Faster way of getting red(argb)
            int g = (rgb >> 8) & 0xFF; // Faster way of getting green(argb)
            int b = rgb & 0xFF;

            // How far is the current color from white
            float dista = dist(r, g, b, 255, 255, 255);

            // 50 is a threshold value allowing close to white being
            // identified as white
            // This value needs to be adjusted based on your actual
            // background color
            // Next block is processed only if the pixel not white
            if (dista > 30) {
                float pixelBrightness = brightness(pixelValue);
                float imgPicked = constrain(pixelBrightness / thresh, 0, n - 1);
                image(imgContainer.get((int) imgPicked), x, y);
            }
        }
    }
}

void mouseReleased() {
    newDesign=!newDesign;
    redraw();
}

1 个答案:

答案 0 :(得分:0)

您可以使用the Java API中的File课程。它具有允许您列出目录中所有文件的功能。您可以使用它来按名称对它们进行排序,然后获取最新的一个。或者您甚至可以使用此类来获取有关该文件的元数据并找到最近修改过的文件。