2017-07-23 2 views
1

en essayant de comprendre comment choisir le dossier le plus récent créé pour charger dans PImage. Je n'arrive pas à trouver un moyen.Obtenez le dossier le plus récent en utilisant PImage (traitement)

J'ai deux croquis, qui crée un tas d'images, et qui les charge. C'est celui qui les charge dans.

Un nouveau dossier est créé dans mes croquis données dossier chaque fois que autres croquis. Je dois choisir le dossier le plus récent créé et le charger dans mon PImage. Il ressemble à http://imgur.com/a/u1jF0
Ainsi, le nom du dossier suivant sera appelé test_segments2, puis tester les segments 3 ... et ainsi de suite.

CODE:

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(); 
} 

Répondre

0

Vous pouvez utiliser la classe File de the Java API. Il a des fonctions qui vous permettent, par exemple, de lister tous les fichiers dans un répertoire. Vous pouvez utiliser ceci pour les trier par nom, puis obtenir le plus récent. Ou vous pouvez même utiliser cette classe pour obtenir les métadonnées sur le fichier et trouver le fichier modifié le plus récemment.

+0

Ok cool. Sur tous les types de fichiers répertoriés, lequel fonctionnerait le mieux? Je vois filedatasoure, filefilter, filenamefilter ...? – guyintightpants

+0

@guyintightpants Je voudrais simplement commencer par la classe 'File'. –

+0

Oh je le vois maintenant. Je vois lastModified .... comment puis-je obtenir les métadonnées sur le fichier? – guyintightpants