ciao!

io ho questo metodo qui che ridimensiona i file:
codice:

public void resizeImage(File inputImage, String dir, int width, int height) throws IOException {
Image image = ImageIO.read(inputImage);
Image newImage = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage buf = new BufferedImage(newImage.getWidth(null), newImage.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = buf.createGraphics();
g2.drawImage(newImage, 0, 0, null);
g2.dispose();
String ext = FilenameUtils.getExtension(inputImage.getName());
ImageIO.write(buf, ext, new File(dir + inputImage.getName()));
}

se nel percorso di inputImage ci sono degli spazi, l'immagine non viene processata.
le immagini vengono scelte da un utente a partire da una directory, e agguinte ad una lista da qui:
codice:

public ArrayList getImages2(Path directory, int depth) throws IOException {
ArrayList listImages = new ArrayList();
Files.walkFileTree(directory, EnumSet.of(FileVisitOption.FOLLOW_LINKS), depth, new SimpleFileVisitor
() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (file.toFile().getName().toLowerCase().endsWith(". jpg") || file.toFile().getName().toLowerCase().endsWith(".p ng")) {
listImages.add(file.toFile().toString());
}
return FileVisitResult.CONTINUE;
}
});
return listImages;
}

in sostanza:
-l'utente avvia il programma e sceglie una dirctory da un jfilechooser
-vengono controllati i vari file e in caso aggiunti alla lista (getImages2)
-la lista viene processata, e ogni immagine modificata (resizeImage)

come posso fare per i path con spazi?


Scritto da: fermat in categoria Java nella data 16-07-2015 16:01.