coordonnées d'un point

Bonjour, dans le code JAVA suivant, je cherche à l’écran un pixel d’une couleur donnée et je positionne la souris dessus. Seulement, je n’arrive pas à comprendre pourquoi un point trouvé en bas à gauche de mon écran a pour coordonnées “i=5 j=700” (la souris se positionne bien dessus) alors que i devrait décrire la hauteur.
Ça doit être trivial mais je vois pas …

[code]public class Ecer {
private int largeurEcran, hauteurEcran, couleurBordure = 11910338, x1, x2, y1, y2;

static BufferedImage image;
public Ecer() throws AWTException, InterruptedException {
	Dimension dimension = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
	hauteurEcran = (int)dimension.getHeight();
	System.out.println("hauteurEcran "+hauteurEcran);		
	largeurEcran  = (int)dimension.getWidth();
	System.out.println("largeurEcran "+largeurEcran);		

	Robot r = new Robot();
	
	BufferedImage capt = r.createScreenCapture(new Rectangle(hauteurEcran,largeurEcran));
	//CMJN 7 3 0 24 HTML b5bcc2 181,188,194 = 11910338
	
	int j=0,i=0 ;
	boolean trouv = false;
	while (i<hauteurEcran && !trouv){
		while (j<largeurEcran && !trouv){
			
			if ((capt.getRGB(i,j)& 0xFFFFFF)==couleurBordure)	trouv = true;
			else j++;
		}
		if (!trouv){j=0; i++;}
		
	}
	if (i==hauteurEcran) System.out.println("pas trouvé");
	else {
		System.out.println("coord x1 : "+i+" et "+j);
		r.mouseMove(i,j);
		
	}
}[/code]

en haut à gauche => 0,0
i => position horizontale

ok mais ma question est :

hauteurEcran 768 largeurEcran 1366 coord x1 : 20 et 679
pour un point en bas à gauche, je voyais plutôt 679 et 20.
Il s’agit de l’ordre des axes, pas de l’origine.

Je viens juste d’éditer le message : il y a juste une inversion i j => H et V
getRGB(i,j) => getRGB(x,y) <=> getRGB(H,V)
x abscisse
y ordonnée

si j’inverse i et j dans la méthode getRGB(), se produit un dépassement de limites.

J’ai pas tout lu, mais il faudrait [strike]aussi inverser: largeurEcran et hauteurEcran[/strike]

[strike]=> ... while (i<largeurEcran && !trouv){ while (j< hauteurEcran && !trouv){ ...

et voir la suite …[/strike]

ou là j’suis fatigué moi…
désolé…

merci de m’aider en tout cas. J’ai l’impression d’être dans la cinquième dimension avec ce problème. A ma décharge, je suis malade …

[code]BufferedImage capt = r.createScreenCapture(new Rectangle(largeurEcran,hauteurEcran));
//CMJN 7 3 0 24 HTML b5bcc2 181,188,194 = 11910338

	int j=0,i=0 ;
	boolean trouv = false;
	while (i<hauteurEcran && !trouv){
		while (j<largeurEcran && !trouv){
			
			if ((capt.getRGB(j,i)& 0xFFFFFF)==couleurBordure)	trouv = true;
			else j++;
		}
		if (!trouv){j=0; i++;}
		
	}
	if (i==hauteurEcran) System.out.println("pas trouvé");
	else {
		System.out.println("coord x1 : "+i+" et "+j);
		r.mouseMove(j,i);[/code]

Merci MicP!

Super !
C’était donc bien une histoire d’abscisse et d’ordonnée qui avaient été inversées pour “getRGB” et “mouseMove”.