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
A voir également:

5 réponses

pyschopathe Messages postés 2053 Statut Membre 135
 
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
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
pyschopathe Messages postés 2053 Statut Membre 135
 
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
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
pyschopathe Messages postés 2053 Statut Membre 135 > 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
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
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
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
pyschopathe Messages postés 2053 Statut Membre 135
 
Probablement, oui.
0

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

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

merci pour ton aide
0