Problème déclaration de variable
Bonjour amis du forum
Je voudrais utiliser la fonction colorToHSV pour convertir une image rgb en hsv pour ensuite ne sélectionner qu'une seule couleur.
Cependant j'ai un petit problème au niveau des arguments d'entrée lors de la déclaration des variables notamment.
bitmap est une image rgb chargée avant.
Mon code actuel est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| int x=bitmap.getWidth();
int y=bitmap.getHeight();
//numeriser.setText(String.valueOf(bitmap.isMutable()));
j=1;
t=1;
int[] mapSrcColor = new int[x * y];
float[] pixelHSV = new float[3];
bitmap.getPixels(mapSrcColor, 0, x, 0, 0, x, y);
int index=0;
while (t<=x-1)
{
while (j<=y-1)
{
Color.colorToHSV(mapSrcColor[index], pixelHSV);
index++;
if (pixelHSV[0]>= 220 && pixelHSV[0]<=260) //couleur du bleu
{
bitmap.setPixel(t, j, Color.WHITE);
}
else
{
bitmap.setPixel(t, j, Color.BLACK);
}
j=j+1;
}
j=1;
t=t+1;
}
} |
Cependant le programme plante avec la ligne de commande
Code:
int[] mapSrcColor = new int[x * y];
Et je ne comprend pas pourquoi puisque x et y existent et que ça fonctionne pour le int qui suit!?!
Quelqu'un a t il une idée du pourquoi de cette erreur? ou une autre idée pour contourner cette ligne de code?
Je suis dispo pour toutes précisions. :)