Copier un tablea int 2 fois dan sun autre

Fermé
jaco - 29 mai 2009 à 12:10
 jaco - 2 juin 2009 à 11:44
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
A voir également:

5 réponses

pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
29 mai 2009 à 12:20
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
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
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
29 mai 2009 à 12:50
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
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
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135 > jaco
2 juin 2009 à 10:25
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
jaco > pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010
2 juin 2009 à 11:41
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
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
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
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
29 mai 2009 à 15:15
Probablement, oui.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

merci pour ton aide
0