begin process at 2010 02 10 02:51:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Graphique

 > 

capturer une couleur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

capturer une couleur

dimanche 18 janvier 2004 à 23:21:03 | capturer une couleur

Fly57

Alors voila, je me suis mis en tête de faire un petit logiciel qui m'indique le code RV et Hexa d'une couleur (ça j'ai deja fait) mais aussi qu'il puisse capturer cette couleur en n'importe quel point de l'ecran
par exemple je clic sur mon bouton pour cette action, et la n'import ou ou je clic sur l'ecran, ça me renvoi la couleur rvb ou hexa du pixel cliqué sur l'ecran

je sais pas trop vers quoi me tourner, c'est en C# biensur et j'utilise SharpDevelop ... ptêtre avec openGL mais j'ai pas reussi à le faire fonctionner sous SharpDevelop, j'ai telechargé CsGL, mais ça prends pas

voila merci pour l'aide que vous pourrez me fournir :)

- Fly -
lundi 19 janvier 2004 à 00:54:02 | Re : capturer une couleur

coq

Administrateur CodeS-SourceS
G peut etre une piste
je dis bien piste pck je ne sais pas si C applicable
La classe Bitmap contient une methode GetPixel : "Obtient la couleur du pixel spécifié dans ce Bitmap."
Il "suffirait" de noter les coordonnées de la souris sur l'ecran tout en fesant une capture de tout l'ecran pour ensuite se servir de GetPixel afin de recup la couleur du pixel qui etait pointé en se servant de la capture.

Cette source de gg00xiv te donne un Image

Bitmap comporte un constructeur prenant comme parametre un Image

à toi de jouer



Cocoricoooooooo !!!!
lundi 19 janvier 2004 à 09:54:43 | Re : capturer une couleur

Fly57

Merci pour ta reponse
c'est nickel ce qu'il me fallait, bon ben j'ai presque finit le programe enfin il est fini mais le prob c'es tque je me sers de Direct X pour capturer les coordonnées de la souris, je les ais puis je me sers de GetPixel etc
mais SharpDevelop ne reconnait pas Direct X

j'ai mis ça en haut du prog :
using Microsoft.DirectX;
using Microsoft.DirectX.DirectInput;

et SharpDevelop me sors cette erreur :
"Le type ou le nom d'espace de noms 'DirectX' n'existe pas dans la classe ou l'espace de nom 'Microsoft'"
il me la met deux fois :/

donc la question est la suivante, comment puis-je faire pour me servir de direct X sous Sharp Develop, et que ça compile bien sur :)

Car je n'ai pas VS .Net

Merci d'avance :)

- Fly -
lundi 19 janvier 2004 à 09:59:14 | Re : capturer une couleur

coq

Administrateur CodeS-SourceS
cherche plutot du coté des api
il doit bien y avoir moyen de capturer ces fameuses coordonnées via l'api windows



Cocoricoooooooo !!!!
lundi 19 janvier 2004 à 10:39:06 | Re : capturer une couleur

Fly57

j'ai etait fouillé sur msdn et j'ai trouvé la fonction GetCursorPos()
j'ai donc fait comme suit :

public class CursorPointClass
{
[DllImport("coredll.dll")]
public static extern bool GetCursorPos(ref Point pt);
}

et je m'en sers ensuite comme ça :

Point pt = new Point(0, 0);
//le lien que tu m'as indiqué
Image capture = WindowsDesktop.CaptureScreen();
if(CursorPointClass.GetCursorPos(ref pt))
{
//j'ai aussi essayé sans convertir en Int16 ou meme en Int32
Color cc = capture.GetPixel(pt.x.ToInt16(), pt.y.ToInt16());
}

et la j'ai un paquet d'erreurs (6) :
-System.Drawing.Point.x est innaccessible en raison de son niveau de protection (CS0122)
-System.Drawing.Point.y est innaccessible en raison de son niveau de protection (CS0122)
-System.Drawing.Image ne contient pas de definition pour GetPixel (CS0117)
les 3 autres sont à causes de celles qui precedent

voila, pourtant j'ai l'impression de bien m'en servir :/


- Fly -
lundi 19 janvier 2004 à 10:42:32 | Re : capturer une couleur

coq

Administrateur CodeS-SourceS
essaie un peu avec "out" a la place de "ref"



Cocoricoooooooo !!!!
lundi 19 janvier 2004 à 10:47:20 | Re : capturer une couleur

Fly57

c'est idem :(
les mêmes erreurs aux mêmes endroits

- Fly -
lundi 19 janvier 2004 à 10:57:18 | Re : capturer une couleur

coq

Administrateur CodeS-SourceS
bon G coder un truc vite fait (1 fenetre + un bouton ^^)

deja coredll.dll je sais pas d'ou tu le sors

dans la classe :


[DllImport("user32.dll")]
public static extern bool GetCursorPos(ref Point pt);



le code :


private void button1_Click(object sender, System.EventArgs e)
{
Point pt = new Point(0, 0);
GetCursorPos(ref pt);
MessageBox.Show(pt.X.ToString()+"/"+pt.Y.ToString());
}


ça marche niquel


Cocoricoooooooo !!!!
lundi 19 janvier 2004 à 11:21:10 | Re : capturer une couleur

Fly57

ok maintenant c'est bon pour la souris :)
merci pour ton aide ;)
il ne me reste plus qu'un probleme à regler :
-System.Drawing.Image ne contient pas de definition pour GetPixel (CS0117)

j'utilise un code que j'ai trouv ici pour faire la capture d'ecran que t'as montré au dessus, mon avis c'est que le code qui est donnée renvoie un Image (different d'un bitmap ?) alors que GetPixel() s'utilise sur un bitmap, c'est peut-être de là que viens l'erreur

je vais continuer à chercher :)

- Fly -
lundi 19 janvier 2004 à 11:26:18 | Re : capturer une couleur

coq

Administrateur CodeS-SourceS
par contre maintenant comme tu veux recup la couleur a n'importe quel point de l'ecran, il fo aussi que tu "intercepte" les clics en dehors de ta fenetre d'appli
je pense que là y'a pas d'autre solution que le hook :
Article sur CodeProject
Article MSDN

bon courage ^^


Cocoricoooooooo !!!!

1 2

Cette discussion est classée dans : clic, ecran, couleur, capturer, hexa


Répondre à ce message

Sujets en rapport avec ce message

Convertir couleur en hexa [ par lagoelle ] Bonjour,Je suis sur un projet de création de skin pour SPV C600 et je dois créer un colorScheme.Comment convertir une couleur  en valeur hexa (#FFFF p couleur hexa [ par T103 ] bonsoirvoila jarrive a recupeer la valeur d'un pixel avec la fonction getpixel, mai je recupere une valeur du stil en hexadecimal (#FF0066) mai ensuit Menu en clic droit sur datagrid [ par miss07 ] Bonjour, J'ai un petit probleme. Voila j'ai un datagrid et j'aimerai créer un espece de menu ou un vraiment un menu lorsque je fais un clic droit de m Dimension de l'ecran [ par manou2005 ] Bonjour tout le monde, je voudrais savoir comment faire pour avoir les dimensions de l'écran en C#.Et merci. ListView et couleur selection items [ par YLSEAGLE ] Bonjour à tous. Je cherche à changer la couleur de sélection d'un item dans une listview. Par défaut, celle ci est de couleur bleu avec le texte en bl programmer le clic d'un bouton [ par FlowerOnTheWall ] Bonjour.Je souhaiterai programmer le clic d'un bouton d'un programme qui n'est pas le mien. J'arrive juste à récupérer le handle de l'application.Merc liste deroulante graphics [ par emmanuel9 ] Bonjour,   En faite je voudrais faire une liste avec un numero et un carré de couleur a coté mais une liste deroulante. Je peux pas utiliser de listv Capturer des sons grace a un micro [ par mbourgeois ] Bonjour,dans le cadre d'un projet d'études, je suis a la recherche d'un moyen de cpaturer les sons d'un microphone relié a un ordinateur dans l'un des Sélection d'un ContextMenu [ par Marquo ] Bonjour,je voudrais utiliser le clic droit sur un listview.Sur mon clic j'ai bien ajouter les menuItems : ListV.MenuItems.Add("toto") mais je ne sais Couleur de menu [ par julie1m ] Bonjour,J'ai un petit problème, mais je n'arrive pas à le résoudre:J'ai un Form, auxquel j'ai donné une couleur de fond.De plus, j'ai associé une barr


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales