Bonjour à tous ,
voici une image ppm :
Il faut qu'elle soit stockée dans une liste chainée de la manière suivante :P3
#truc.ppm
4 4
15
0 0 0 0 0 0 0 0 0 15 15 0
0 0 0 0 15 7 0 0 0 0 0 0
0 0 0 0 0 0 0 15 7 0 0 0
15 15 0 0 0 0 0 0 0 0 0 0
[red][green][blue] [nombre d'occurence de la couleur]
000 3 -----> 1500 1 -----> 000 1 -----> 0157 1 -----> 000 4 -----> 0157 1 -----> 000 1 -----> 15150 1 -----> 000 3 /
une image doit comprendre une largeur et une hauteur ( 4 et 4 pour l'exemple si dessus )
la valeur max d'une couleur : 15 pour cet exemple
ainsi qu'une liste chaînée comme représentée si dessus
je vous montre donc les classes que j'ai crée , mon problème est que je n'arrive pas à lire le fichier et mettre les informations dans ma liste chaînée...
Le code de la Liste :
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 public class Image { private int largeur , hauteur ; private int valeurMax ; private Liste listeSegment = new Liste() ; public Image(String nomFichier) { FileInputStream fichier ; int c ; try{ fichier = new FileInputStream("images/"+nomFichier) ; BufferedReader f = new BufferedReader(fichier); f.readLine(); f.readLine(); String s = f.readLine(); String[] split = s.split(" "); this.largeur = Integer.parseInt(split[0]); this.hauteur = Integer.parseInt(split[1]); this.valeurMax = Integer.parseInt(f.readLine()); System.out.println("Hauteur : "+this.hauteur + "\n largeur :"+ this.largeur + "\n valeurmax : " + this.valeurMax); fichier.close(); } }catch(FileNotFoundException ex){ System.out.println("Fichier n'existe pas"); }catch(IOException exc){ System.out.println("Erreur d'entrée sortie"); } } // setteurs et getteurs ...
ensuite le code de Segment :
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 public class Liste { Segment premier; public boolean estVide() { return premier == null; } public Segment getPremier() { return premier; } public void ajouterALaFin(int red,int green,int blue , int n) { if (estVide()) { premier = new Segment(red,green,blue,n); } else { Segment dernier = getDernierElement(); dernier.setSuivant(new Segment(red,green,blue,n)); } } private Segment getDernierElement() { Segment dernier = premier; while (dernier.getSuivant() != null) { dernier = dernier.getSuivant(); } return dernier; } public int getLongueur() { int longueur = 0; Segment elt = getPremier(); while (elt != null) { longueur++; elt = elt.getSuivant(); } return longueur; } public void concatener(Liste l) { if (this.estVide()) { this.premier = l.premier; } else { Segment dernier = getDernierElement(); dernier.setSuivant(l.getPremier()); } } public void ecrireListe() { System.out.print("["); Segment elt = getPremier(); while (elt.getSuivant() != null) { System.out.print("(" + elt.getRed()+","+elt.getGreen()+","+elt.getBlue()+")"); elt = elt.getSuivant(); } System.out.println("(" + elt.getRed()+","+elt.getGreen()+","+elt.getBlue()+")" + "]"); } }
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 public class Segment { private int red,green,blue; private int nombre ; private Segment suivant; public Segment(int red,int green,int blue , int n, Segment suivant) { this.red = red; this.green = green; this.blue = blue; this.nombre = n; this.suivant = suivant; } public Segment(int red,int green,int blue , int n) { this.red = red; this.green = green; this.blue = blue; this.nombre = n; this.suivant = null; } public int getRed() { return red; } public void setRed(int red) { this.red = red; } public int getGreen() { return green; } public void setGreen(int green) { this.green = green; } public int getBlue() { return blue; } public void setBlue(int blue) { this.blue = blue; } public int getNombre() { return nombre; } public void setNombre(int nombre) { this.nombre = nombre; } public Segment getSuivant() { return suivant; } public void setSuivant(Segment suivant) { this.suivant = suivant; } }
Edit : Je me suis trompé de forum , je voulais dans le débuter de General Java
Partager