Connaitre la couleur présente à un point précis.
Fermé
ReddInTheAbyss
Messages postés
30
Date d'inscription
vendredi 28 septembre 2012
Statut
Membre
Dernière intervention
5 février 2013
-
5 févr. 2013 à 12:58
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 5 févr. 2013 à 17:39
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 5 févr. 2013 à 17:39
A voir également:
- Connaitre la couleur présente à un point précis.
- Un agent immobilier a préparé un diaporama pour présenter une maison à vendre. appliquez la mise en forme de la première diapositive à toutes les autres. quel est le code du portail ? ✓ - Forum Powerpoint
- La boite a couleur - Télécharger - Divers Photo & Graphisme
- Votre colis a été déposé dans un point postal - Forum Consommation et internet
- Point d'exclamation à l'envers ✓ - Forum Matériel informatique
- Somme si couleur - Guide
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
Modifié par KX le 5/02/2013 à 18:17
Modifié par KX le 5/02/2013 à 18:17
Tu peux faire une "impression écran" sur une zone définie par un rectangle, et en particulier sur un seul pixel (rectangle 1x1) puis en extraire les couleurs.
Pour cela il te faut un Robot (qui fait les impressions écrans) :
Ensuite, on effectue l'impression écran pour récupérer la couleur.
Ici x et y correspondent au pixel sur l'écran, pas sur une JFrame.
En exemple, je vais reprendre en partie le code que je t'ai donné hier sur la récupération des coordonnées de la souris (--> ici). Mais pour le getColor il faut bien penser à prendre getXOnScreen et getYOnScreen au lieu de getX et getY.
Par exemple en changeant juste mouseMoved :
Pour cela il te faut un Robot (qui fait les impressions écrans) :
private static final Robot robot = initRobot();
private static Robot initRobot()
{
try
{
return new Robot();
}
catch (AWTException e)
{
throw new RuntimeException(e);
}
}
Ensuite, on effectue l'impression écran pour récupérer la couleur.
Ici x et y correspondent au pixel sur l'écran, pas sur une JFrame.
public static Color getColorOnScreen(int x, int y)
{
Rectangle rect = new Rectangle(x,y,1,1);
BufferedImage img = robot.createScreenCapture(rect);
int rgb = img.getRGB(0, 0);
return new Color(rgb);
}
En exemple, je vais reprendre en partie le code que je t'ai donné hier sur la récupération des coordonnées de la souris (--> ici). Mais pour le getColor il faut bien penser à prendre getXOnScreen et getYOnScreen au lieu de getX et getY.
Par exemple en changeant juste mouseMoved :
@Override
public void mouseMoved(MouseEvent e)
{
Color color = getColorOnScreen(e.getXOnScreen(),e.getYOnScreen());
System.out.printf("move : x=%3d, y=%3d, rgb=(%d,%d,%d)\n", e.getX(), e.getY(), color.getRed(), color.getGreen(), color.getBlue());
}La confiance n'exclut pas le contrôle