[RESOLU]

[RESOLU] - Java - Programmation

Marsh Posté le 18-02-2011 à 22:38:47    

Salut a tous!
 
PROBLEME RESOLU, Mais j'en ai un nouveau pour vous!!
 
Pas de soucis dans la compilation mais a l'exécution j'ai ce bout de code qui merdouille
Impossible de rentrer les valeurs que je demande dans result[][]
et impossible de savoir pourquoi il ne veut pas non plus...
 

Code :
  1. //Création du tableau tabFin va contenir nos couleurs
  2.  int[][] tabFin =new int[img.length][3];
  3.  //Valeur en hexa de notre couleur cherchée
  4.  String couleurHexa = ("000000" );
  5.  //conversion de l'hexa en int
  6.  int couleurInt = Integer.parseInt(couleurHexa, 16);
  7.  //Le tableau img fait la longueur du nombre de pixels contenu dans l'image. soit l*h
  8.  for(i=0; i<(l*h);i++){
  9.   int[] b = intToByteArray(img[i]);
  10.   //On découpe via intToByteArray la variable i en 4bytes, mais le premier est useless
  11.   tabFin[i][0]=b[1];
  12.   tabFin[i][1]=b[2];
  13.   tabFin[i][2]=b[3];
  14.   //System.out.println(" "+ tabFin[i][0] +" "+ tabFin[i][1] +" "+ tabFin[i][2]);
  15.   if(tabFin[i][0]==couleurTab[0] && tabFin[i][1]==couleurTab[1] && tabFin[i][2]==couleurTab[2]){
  16.    System.out.println(""+i/l);
  17.    result[nbrResult][1]= i % l;  //ICI CA PLANTE
  18.    result[nbrResult][0]= i / l;   //ICI AUSSI
  19.    nbrResult ++;
  20.   }
  21.  }


 
Après un petit Try/catch sur ce qui plante j'ai un java.lang.ArrayIndexOutOfBoundsException


Message édité par bqbqr le 19-02-2011 à 09:08:23

---------------
*Feedback*
Reply

Marsh Posté le 18-02-2011 à 22:38:47   

Reply

Marsh Posté le 18-02-2011 à 23:59:27    

Pour vous aider, voici le format des fichiers bmp :  http://en.wikipedia.org/wiki/BMP_file_format
 
C'est un format qui est un peu à géométrie à variable. Par exemple, on peut avoir 4 octets pour par pixel, ou bien on peut aussi avoir un autre nombre. C'est un paramètre de l'en-tête. Votre programme ne semble être adapté que pour le cas où l'on 4 octets par pixel. On peut avoir les pixel du haut vers le bas ou du bas vers le haut, et votre programme ne considère qu'un seul sens, etc.
 
Qu'est-ce que vous ne comprenez pas ?
Ce programme se base sur des objets et des méthodes que vous ne connaissez peut-être pas, par exemple IndexColorModel(), Raster.createPackedRaster(), BufferedImage(). Voir la doc.
 
 
 

Reply

Marsh Posté le 19-02-2011 à 00:00:39    

J'ai trouvé ! je me suis servid'un autre code, trouvé sur Hfr aussi, j'avais juste besoin de cette méthode pour comprendre:

 
Code :
  1. public static int[] testImg(String file) {
  2.  File fileImg = new File(file);
  3.  try {
  4.   image = ImageIO.read(fileImg);
  5.  } catch (IOException e) {
  6.   image = null;}
  7.  int w = image.getWidth(null);
  8.  int h = image.getHeight(null);
  9.  int[] rgbs = new int[w * h];
  10.  image.getRGB(0, 0, w, h, rgbs, 0, w);
  11.  return rgbs;
  12. }
 

Merci bill, j'avais déjà lu le format des fichiers bmp mais je trouvais pas comment "charger" une image dans le programme, et cette méthode m'a bien aidé
Plus qu'a implémenter l'interface graphique et tout le touintouin :)


Message édité par bqbqr le 19-02-2011 à 00:01:56

---------------
*Feedback*
Reply

Marsh Posté le 19-02-2011 à 08:36:01    

petit up, j'ai un bug dans les lignes de codes plus haut


---------------
*Feedback*
Reply

Marsh Posté le 19-02-2011 à 13:53:49    

bqbqr a écrit :

petit up, j'ai un bug dans les lignes de codes plus haut


Change le titre alors si c'est pas résolu!


---------------
Seul Google le sait...
Reply

Marsh Posté le 19-02-2011 à 14:09:17    

Résolu! ^^
J'ai un probleme d'unsigned et de signed mais je vais gérer ça moi même, je reviendrais si je bloque vraiment


Message édité par bqbqr le 19-02-2011 à 14:10:54

---------------
*Feedback*
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed