| Detecter la couleur d'un pixel sur l'écran | |
|
|
Auteur | Message |
---|
Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 11:40 | |
| Salut tout le monde ! Quelle est la fonction Panoramic qui détecte la couleur d'un pixel sur l'écran ? Merci pour votre réponse, Parpaiun | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 11:46 | |
| Les fonctions COLOR_PIXEL_RED(n,x,y), COLOR_PIXEL_GREEN(n,x,y) et COLOR_PIXEL_BLUE(n,x,y) retournent les valeurs R, G et B pour l'objet n, aux coordonnées (x,y).
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 13:33 | |
| - Code:
-
dim r,g,b ' color_pixel_red(n,x,y) retourne la composante primaire rouge d'un pixel de l'objet système désigné par son numéro N. ' color_pixel_green(n,x,y) retourne la composante primaire vert d'un pixel de l'objet système désigné par son numéro N. ' color_pixel_blue(n,x,y) retourne la composante primaire bleue d'un pixel de l'objet système désigné par son numéro N.
2d_pen_color 123,150,96 : 2d_line 100,100,200,100 r = color_pixel_red(0,150,100) g = color_pixel_green(0,150,100) b = color_pixel_blue(0,150,100) message "Les composantes de couleur du point (150,100) sont :"+chr$(13)+str$(r) + " " + str$(g) + " "+str$(b) | |
|
| |
Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| |
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 15:19 | |
| - Parpaium a écrit:
- Je ne connaissais pas cette longue instruction par rapport à celle du GFA Basic 32 qui est simplement: "point(x,y)" !
L’instruction du GFA Basic POINT (x,y) est simple, parce que, justement c’est trop simple : uniquement 16 couleurs disponibles ! Si je me trompe, corrige-moi. Par contre, Panoramic sait gérer 256*256*256 (fais le calcul) couleurs différentes. Donc forcement l’instruction est un chouia plus compliquée. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 16:22 | |
| Remarque, ce serait peut être interessant d'avoir une nouvelle fonctionnalité pour vérifier si un point a une couleur particulière du genre IS_POINT_COLORED (x,y,valeur rouge,valeur verte,valeur bleue) qui renvoit 0 si le point n'est pas de cette couleur et 1 s'il l'est ? C'est une fonction que l'on peut facilement faire, mais peut être que le codage en natif serait plus optimisé pour gagner quelques cycles pour quand on teste plusieurs points. Ce n'est pas une fonction vitale, c'est juste une idée à voir | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 17:00 | |
| Ou une fonction qui renvoie une chaîne de caractères dans le format hexadécimal utilisé sur le web (style css ou balise couleur de phpBB) exemple : #CEFADAOu alors il y a la possibilité d'utiliser ma DLL : PICK.DLL
Dernière édition par Nardo26 le Jeu 30 Avr 2015 - 17:08, édité 1 fois | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 17:05 | |
| Ca c' est une réponse que l' on pourrait avoir fréquemment ! | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 17:53 | |
| C'est vrai Nardo (Honnetement, j'avais oublié que l'on pouvait le faire par cette DLL ) mais pour ce type de tests qui doivent être très rapide (pour les jeux par exemple), idéallement, on gagnerait du temps avec une commande intégrée (l'appel d'une DLL externe avec echange d'information prend forcément quelques cycle d'horloges) | |
|
| |
Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 18:06 | |
| Non, Papydall, tu ne t'es pas trompé ! Pour Jicehel, ton idée de fonction simple avec IS_POINT_COLORED () n'est pas mal du tout. Quant à Nardo26, il faudrait m'expliquer à quoi servent #CEFADA et Pick.dll ! Pour tous, économisez un peu votre salive avec vos parlotes. Vous me faites gentiment l'effet de poules qui caquètent autour de moi dans une basse-cour !
Dernière édition par Parpaiun le Jeu 30 Avr 2015 - 18:51, édité 2 fois | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 18:17 | |
| - Code:
-
rem ============================================================================ rem Exemple d utilisation de PICK.DLL de Nardo26 rem ============================================================================ LABEL clic,FinProg dim r,v,b alpha 10 : top 10,350 : left 10,100 : font_bold 10 2d_fill_color rnd(255),rnd(255),rnd(255) : 2d_circle 300,200,100 2d_rectangle 10,20,50,300 : 2d_flood 11,21,255,255,0 2d_rectangle 210,20,250,300 : 2d_flood 11,21,0,255,0 2d_circle 300,200,50: 2d_flood 300,200,0,255,255 DLL_ON "c:\users\acer\desktop\pick.dll" : ' Adapter le chemin ON_CLOSE 0,FinProg TIMER 1:TIMER_INTERVAL 1,100 ON_TIMER 1,clic
END rem ============================================================================ clic: Pick() return rem ============================================================================ SUB Pick() DIM_local Pick_Coordonnee$, Pick_x,Pick_y,Pick_retour% ,t$
Pick_Coordonnee$=STRING$(20," ") Pick_retour%=dll_call1("GetMouseXY",ADR(Pick_Coordonnee$)) Pick_x = VAL(LEFT$(Pick_Coordonnee$,INSTR(Pick_Coordonnee$,":")-1)) Pick_y = VAL(MID$(Pick_Coordonnee$,INSTR(Pick_Coordonnee$,":")+1,200)) Pick_Coordonnee$=STRING$(20," ") Pick_retour%=dll_call3("GetColorXY",Pick_x,Pick_y,ADR(Pick_Coordonnee$))
CAPTION 0,"Coordonnées "+str$(Pick_x)+" x "+str$(Pick_y)+" couleur :"+Pick_Coordonnee$ r = hex(left$(Pick_Coordonnee$,2)) v = hex(mid$(Pick_Coordonnee$,3,2)) b = hex(mid$(Pick_Coordonnee$,5,2)) t$ = "Déplacez la souris où vous voulez, même en dehors de cette fenêtre"+chr$(13)+chr$(13) t$ = t$ + "Coordonnées de la souris : "+str$(Pick_x)+" x "+str$(Pick_y) +chr$(13) t$ = t$ + "Couleur du pixel :R = "+str$(r) + " V = " + str$(v) + " B = "+str$(b) caption 10,t$
END_SUB rem ============================================================================
FinProg: DLL_OFF TERMINATE rem ============================================================================
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 18:46 | |
| - Parpaium a écrit:
- Quant à Nardo26, il faudrait m'expliquer à quoi servent #CEFADA et Pick.dll !
Comme Nardo Twenty six est allé s'occuper de ses poissons (il en a des plus exotiques !), et après sa permission, je te réponds : #CEFADA : ceci représente un code en hexadécimal de 3 nombres (à 2 chiffres chacun) représentant le code couleur RVB Rouge = #CE (hexadécimal) = 206 Vert = #FA (hesadécimal) = 250 Bleu = #DA (hexadécimal) = 218 Le code suivant fait la conversion Hexadécimal --- > décimal - Code:
-
print hex("CE") print hex("FA") print hex("DA") Quant à Pick.dll, c’est une DLL (Dynamic Link Library) soit Bibliothèque de liens dynamiques. Cette DLL contient les fonctions : GetMouseXY qui donne la position de la souris sur l’écran GetColorXY qui donne les composantes RVB du pixel (x,y) sous la forme hexadécimale (voir mon exemple donné dans le précédant message) | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 22:19 | |
| - papydall a écrit:
- Comme Nardo Twenty six est allé s'occuper de ses poissons (il en a des plus exotiques !)
Désolé j'ai du m'absenter... Papydall a tout dit en ce qui concerne l'utilisation de la dll. Son programme de démo est très bien fait ! Merci Papydall ! D'ailleurs, s'il m'en donne l'autorisation, j'aimerai bien le rajouter sur mon site pour expliquer le fonctionnement de la DLL (car pour l'instant mon explication est succincte) ... | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Jeu 30 Avr 2015 - 22:41 | |
| Nardo, tu sais très bien que tout ce que je publie sur le Forum est libre d’utilisation. Tu peux en faire ce que tu voudras. D’ailleurs, c’est bien ton code que j’ai utilisé alors sers-toi, je t'en prie! | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran Ven 1 Mai 2015 - 7:46 | |
| Ok merci ! Par politesse, je demande toujours... | |
|
| |
Contenu sponsorisé
| Sujet: Re: Detecter la couleur d'un pixel sur l'écran | |
| |
|
| |
| Detecter la couleur d'un pixel sur l'écran | |
|