ciao!
io ho questo metodo qui che ridimensiona i file:
se nel percorso di inputImage ci sono degli spazi, l'immagine non viene processata.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())); }
le immagini vengono scelte da un utente a partire da una directory, e agguinte ad una lista da qui:
in sostanza:codice:public ArrayList<String> getImages2(Path directory, int depth) throws IOException { ArrayList<String> listImages = new ArrayList<>(); Files.walkFileTree(directory, EnumSet.of(FileVisitOption.FOLLOW_LINKS), depth, new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { if (file.toFile().getName().toLowerCase().endsWith(".jpg") || file.toFile().getName().toLowerCase().endsWith(".png")) { listImages.add(file.toFile().toString()); } return FileVisitResult.CONTINUE; } }); return listImages; }
-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?

Rispondi quotando