Copier un tablea int 2 fois dan sun autre

jaco -  
 jaco -
Bonjour,

j'ai un problème en copiant un tableau de int qui contient des pixels dans un autre :

le but est de copier le contenu 2 fois ou plus exactement copier le contenu pr que je puisse avoir un tableau de dimension 512x512
j'ai fait une boucle pour incrementer mon nouveau tableau dans un while , le probleme
il me renvoit : java.lang.NullPointerException

ou parfois qd je fais des modifications
java.lang.ArrayIndexOutOfBoundsException

est ce quelqu'un peut me donner un bon conseil pour resoudre le prob

merci d'avance de votre aide
Configuration: Windows XP
Firefox 3.0.10

5 réponses

  1. pyschopathe Messages postés 2053 Statut Membre 137
     
    Les exceptions retournées indiquent que tu gères mal les limites de ton tableau. Maintenant, sans connaître ton code, on ne va pas te dire d'où ça vient...
    0
  2. jaco
     
    bjr,

    voila une partie de mon code

    int [] result = new int[width*height];
    int [] temp = new int[width*height];
    result[i++]=(int)tab[nbrimage][NPoints];

    while ( i < 512 )
    for ( i = 0; i < 512; i++ )
    temp[j] = result[i];
    temp[j+1] = result[i];

    j'ai pas tout mis mais jessaie en gros juste de mettre des pixesl ds temp[ j] et temp [j+1] la meme chose tant que je n'ai pas 512 pour reconstruire une image 512x 512

    merci pour ton aide
    0
  3. pyschopathe Messages postés 2053 Statut Membre 137
     
    Pourquoi tu ne fixes pas la taille de temp à 512 puisque c'est la taille que tu veux lui donner ? A quoi est sensée servir cette ligne : result[i++]=(int)tab[nbrimage][NPoints]; ? Que vient faire ce while ( i < 512 ) alors que tu as un for en-dessous ?
    0
    1. jaco
       
      Re,

      le result[i++] sert a stockée des pixles d'une serie dimages pour les reconstruire ds une bufferedimage,
      le while sert comme condition dans le cas ou nbrimage nest pas 512 , peut etre n'est pas necessaire avec le for
      la taille de temp est de 512 , jai utilisé width et height, pr rester ds un cas generale , au cas ou je decide de changer les dimensions de limage
      merci
      0
      1. pyschopathe Messages postés 2053 Statut Membre 137 > jaco
         
        Puisque result[i++] n'est pas dans un boucle, je ne ovis pas à quoi ça va servir. Le while est redondant avec le for. Si tu veux tester une dimension, utilise un if. Tu utilises width et height pour rester dans un cas général mais tu place des 512 en dur dans le reste de ton code, qui n'est donc plus généraliste, corrige ça.

        Tiens-moi au courant.
        0
      2. jaco > pyschopathe Messages postés 2053 Statut Membre
         
        Bjr,

        effectivement while, ne sert pas a bcp chose en presence du for,
        result[i++] au contraire est dans une boucle for juste au dessus ,

        l'erreur que je trouve en ce moment est : java.lang.ArrayIndexOutOfBoundsException: 512

        et il m'indique le lieu de l'erreur: temp[j] = (int ) tab[nbrimage][NPoints];

        le code ou se trouve est :

        if ( i < temp.length )
        _bimageI = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        for ( j = 0; j < temp.length; j++ )

        temp[j] = (int ) tab[nbrimage][NPoints];
        temp[j+1] = (int ) tab[nbrimage][NPoints];

        _bimageI.setRGB(0,0,width,height,temp,0,width);
        System.out.println("temp[" + j + "]=" + temp[j]);
        g2d.drawImage(_bimageI, 0, 0, null);
        0
      3. jaco > jaco
         
        j'ai un peu changer en remplissant le tableau temp et j'ai utiliser le même que pour remplir result ,

        Merci pr ton aide,
        0
  4. jaco
     
    Bjr,
    si tu peux m'aider je trouve
    NullPointer Exception
    et la faute vient de ca : _bimageI.setRGB(0,0,width,height,temp,0,width);
    est ce que tu penses que ca viendra parceque le tableau est vide ?
    merci de ton aide
    0
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      Probablement, oui.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jaco
     
    Re,
    et comment je peux corriger ? ,
    il faut que je remplisse comment ?

    merci pour ton aide
    0