dodo | bonjour,
je suis en train de faire un petit projet mais là je cale il faut dire que la prog je toruve ça hard.
voilà je dois lire un fichier image ppm pour pouvoir le modifier.
déjà je comprend pas pourquoi cette ligne ne compile pas im.pixels=s;
Code :
- class Image{
- String nom;
- String commentaire;
- String largeur ;
- String hauteur;
- String indiceCouleur;
- ListeSegment pixels=new ListeSegment();
- public Image lireImage(){
- Image im=new Image();
- String nomFichier;
- String s;
- FileInputStream fichier;
- int c=0;
- Terminal.ecrireStringln("Entrer le nom de l'image à ouvrir :" );
- nomFichier=Terminal.lireString();
- try{
- fichier=new FileInputStream(nomFichier);
- //lecture de du P3
- s=lireLigne(fichier);
- im.nom=s;
- Terminal.sautDeLigne();
- //lecture de la ligne commantaire
- s=lireLigne(fichier);
- im.commentaire=s;
- Terminal.sautDeLigne();
- //lecture de la largeur
- do{
- Terminal.ecrireChar((char) c);
- s+=(char)c;
- c=fichier.read();
- }while((c!=' ')&&(c!='\r')&&(c!='\n'));
- im.largeur=s;
- //lecture de la hauteur
- do{
- Terminal.ecrireChar((char) c);
- s+=(char)c;
- c=fichier.read();
- }while((c!=' ')&&(c!='\r')&&(c!='\n'));
- im.hauteur=s;
- Terminal.sautDeLigne();
- // lecture de la nuance
- do{
- Terminal.ecrireChar((char) c);
- s+=(char)c;
- c=fichier.read();
- }while((c!=' ')&&(c!='\r')&&(c!='\n'));
- im.indiceCouleur=s;
- Terminal.sautDeLigne();
- //lecture des segments
- do{
- Terminal.ecrireChar((char) c);
- s+=(char)c;
- c=fichier.read();
- }while((c!=' ')&&(c!='\r')&&(c!='\n'));
- Terminal.sautDeLigne();
- im.pixels=s;
- fichier.close();
- }catch(FileNotFoundException ex){
- Terminal.ecrireStringln("Ce fichier n'existe pas" );
- }catch(IOException exc){
- Terminal.ecrireStringln("Erreur d'entre-sortie" );
- }
- return im;
- }
- //permet lecture de la ligne jusqu'au caractère de fin de ligne
- static String lireLigne(FileInputStream fichier)throws FileNotFoundException, IOException{
- int c=0;
- String s="";
- do {
- Terminal.ecrireChar((char) c);
- c=fichier.read();
- } while((c!='\r')&&(c!='\n'));
- s+=(char)c;
- return s;
- }
- //permet la lecture de la ligne
- static String lireLigne2(FileInputStream fichier)throws FileNotFoundException, IOException{
- int c=0;
- String s="";
- do {
- Terminal.ecrireChar((char) c);
- c=fichier.read();
- }while((c!=' ')&&(c!='\r')&&(c!='\n'));
- s+=(char)c;
- return s;
- }
- // Affichage du Menu
- static void Menu(){
- Terminal.ecrireStringln("======================================" );
- Terminal.ecrireStringln("===============MENU ==================" );
- Terminal.ecrireStringln("======================================" );
- Terminal.ecrireStringln("1. Ouvrir une image" );
- Terminal.ecrireStringln("......................................" );
- Terminal.ecrireStringln("2. Quitter " );
- Terminal.ecrireStringln("======================================" );
- }
- //Permet à l'utilisateur de faire sont choix dans le menu
- static int ChoixMenu(){
- int choix=0;
- do{
- Terminal.ecrireString(" Faites votre choix " );
- choix=Terminal.lireInt();
- }while(choix<1||choix>3);
- return choix;
- }
- // On récupère le choix de l'utilisateur
- static void reponseMenu(int choix){
- switch(choix){
- case 1: {
- OuvrirImage();
- break;
- }
- case 2: {
- System.exit(0);
- break;
- }
- default:{
- Terminal.ecrireStringln(" faite un choix entre 1 et 2" );
- Menu();
- }
- }
- }
- static void OuvrirImage(){
- String nomFichier;
- FileInputStream fichier;
- int c=0;
- Terminal.ecrireStringln("Entrer le nom de l'image:" );
- nomFichier=Terminal.lireString();
- try{
- fichier=new FileInputStream(nomFichier);
- c=fichier.read();
- while(c!=-1){
- //Terminal.ecrireChar((char) c);
- c=fichier.read();
- }
- fichier.close();
- }catch(FileNotFoundException ex){
- Terminal.ecrireStringln("Ce fichier n'existe pas" );
- }catch(IOException exc){
- Terminal.ecrireStringln("Erreur d'entre-sortie" );
- }
- }
- }
- class ListeSegment{
- int rouge;
- int vert;
- int bleu;
- ListeSegment suivant=null;
- int comptSegment=0;
- public ListeSegment(){
- }
- public ListeSegment( int r, int v, int b,int compt){
- this.rouge=r;
- this.vert=v;
- this.bleu=b;
- this.comptSegment=compt;
- }
- public ListeSegment ajouterListeSegment( int r, int v,int b, int compt){
- ListeSegment S =new ListeSegment(r,v,b, compt);
- this.suivant=S;
- return S;
- }
- }
|
|