Bonjour,
J'essaye d'écrire des valeurs (int) dans un fichier texte.
Je toutes les images se trouvant dans un dossier et je compte les pixels noirs de cette image.
Et je veux afficher dans mon fichier texte le nombre de pixels pour chaque image.
Voici mon code :
Donc j'ai bien un fichier texte qui s'affiche mais à l'intérieur je n'ai que la dernière valeur de mon compteur "cptnoir".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 public class DetectionEtFichierTexte { public static void displayImage(File file, BufferedImage img) { int cptnoir = 0; int height = img.getHeight(); int width = img.getWidth(); for (int x = 0; x < width; x++) for (int y = 0; y < height; y++) { int p = img.getRGB(x, y); int r = (p>>16)&0xff; if(r == 0){ cptnoir++; } } System.out.println(" "+ file + " " + cptnoir+ " "); //écrire les résultats dans un fichier texte try { File filetxt = new File("chemin\\Classification.txt"); // if file doesnt exists, then create it if (!filetxt.exists()) { filetxt.createNewFile(); } FileWriter fw = new FileWriter(filetxt.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw); bw.write(file + " = " + cptnoir + ""); bw.close(); System.out.println("Done"); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { File path = new File("chemin"); for (File file : path.listFiles()) { try { BufferedImage img = ImageIO.read(file); if (img != null) displayImage(file, img); } catch (IOException e) { continue; } } }
Pourtant dans ma console j'ai bien Les différentes valeurs affichées grace à mon System.out.println
Avez-vous une idée merci ?
Partager