Bonjour,
Je souhaiterai savoir comment detecter la couleur d'un pixel a un endroit donné, par exemple au centre de l'ecran.
Merci de votre aide
Version imprimable
Bonjour,
Je souhaiterai savoir comment detecter la couleur d'un pixel a un endroit donné, par exemple au centre de l'ecran.
Merci de votre aide
Impossible en C++ standard, précise ta plate-forme.
Je suis sous windows.
GetPixel() :
Code:
1
2
3 HDC hdc = GetDC(NULL); COLORREF pix = GetPixel(hdc, 860, 540); ReleaseDC(NULL, hdc);
Merci.
Il y aurai moyen de placer un point noir pour voir ou le pixel se situe pour les test et afficher la couleur detecter ?
Sinon visual studio expresse 2008 me renvoie cette erreur :
Le code :Code:xxx : fatal error C1083: Impossible d'ouvrir le fichier include*: 'iostrream'*: No such file or directory
Code:
1
2
3
4
5
6
7
8
9
10 #include <iostrream> using namespace std; int main() { cout << "hello world!" << endl; return 0; }
"stream" ne prend qu'un seul R.
Pour ton autre question, SetPixelV() a une chance de marcher.
Oui merci.
SInon une nouvelle erreur.
Code:
1
2
3
4
5
6
7
8 'hello.exe'*: Chargé 'C:\Users\pc\Documents\Visual Studio 2008\Projects\hello\Debug\hello.exe', Les symboles ont été chargés. 'hello.exe'*: Chargé 'C:\Windows\System32\ntdll.dll' 'hello.exe'*: Chargé 'C:\Windows\System32\kernel32.dll' 'hello.exe'*: Chargé 'C:\Windows\System32\KernelBase.dll' 'hello.exe'*: Chargé 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_96748342450f6aa2\msvcp90d.dll' 'hello.exe'*: Chargé 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_96748342450f6aa2\msvcr90d.dll' Le programme '[7656] hello.exe: Natif' s'est arrêté avec le code 0 (0x0).
Ceci n'est pas une erreur.
En tout cas j'ai une fenetre noir qui s'ouvre et qui se referme.
Merci sa fonctionne.
Maintenant comment je dois faire pour :
- Detecter la couleur d'un pixel et affiché sa couleur.
- Afficher un pixel rouge a l'endroit ou se trouve le 'détecteur de couleur'.
Troisième choix: Lance ton programme hors du debugger (Debug -> Start Withough Debugging Ctrl+F5), il rajoute le system("Pause"); tout seul.
Ensuite, étrangle l'ingénieur Microsoft qui a décidé que ce serait une bonne idée de ne plus avoir ce bouton dans la barre d'outils par défaut, alors qu'il était présent dans Visual 6.
J'ai déjà posté comment: GetPixel(), SetPixelV().
Je suis désoé je debute.
Même si j'ai des tutoriels C++ je n'arrive pas a faire mon programme.
Pourriez vous me donner un coup de main ?
Merci
Bonjour et bienvenue sur le forum (je me permet de te souhaiter la bienvenue, parce que même si tu as plus de 700 à ton actif, tu ne sembles pas connaître les usages du forum, comme par exemple poser une question claire dès le départ ou chercher un peu par soi même)
Tu ne savais pas compiler un simple "hello world" en C++ ce matin à 9h. Ce n'est pas un défaut, on a tous commencé un moment donné. Par contre, cela ne sert à rien de s'attaquer tout de suite à des problèmes trop complexes pour ton niveau : tu ne comprends pas les réponses que l'on te fait (et crois moi, Médinoc t'a donné toutes les informations nécessaires dans son second post pour trouver par toi même ce qu'il faut chercher) et tu vas agacer les gens en demander qu'on te fasse le boulot à ta place.
Donc prend un tutoriel de base pour débutant, lis le cours, fais les exercices, fais quelques projets simples pour apprendre. Ensuite, tu pourras revenir sur ce problème quand tu connaîtras la syntaxe de base du C++
Bon courage
Citation:
1>------ Début de la génération*: Projet*: hello, Configuration*: Debug Win32 ------
1>Compilation en cours...
1>main.cpp
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(9) : error C2065: 'HDC'*: identificateur non déclaré
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(9) : error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'hdc'
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(9) : error C2065: 'hdc'*: identificateur non déclaré
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(9) : error C3861: 'GetDC'*: identificateur introuvable
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(10) : error C2065: 'COLORREF'*: identificateur non déclaré
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(10) : error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'pix'
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(10) : error C2065: 'pix'*: identificateur non déclaré
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(10) : error C2065: 'hdc'*: identificateur non déclaré
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(10) : error C3861: 'GetPixel'*: identificateur introuvable
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(11) : error C2065: 'hdc'*: identificateur non déclaré
1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(11) : error C3861: 'ReleaseDC'*: identificateur introuvable
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\pc\Documents\Visual Studio 2008\Projects\hello\hello\Debug\BuildLog.htm"
1>hello - 11 erreur(s), 0 avertissement(s)
========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
C'est joli... Il n'a apparemment pas trouvé HDC.
Des questions ?
#include <windows.h>
+ Voir documentation de GetDC() etc. sur MSDN.
Ok sa fonctionne.
Maintenant il ne me reste plus qu'a afficher le pixel rouge et la couleur détecter.
Rougir un pixel est facile (SetPixelV(hdc, x, y, RGB(255, 0, 0)). Mais il y a des chances qu'il ne reste pas rouge longtemps.
Une erreur :
Code:
1
2
3
4
5
6
7
8
9
10 1>------ Début de la génération*: Projet*: hello, Configuration*: Debug Win32 ------ 1>Compilation en cours... 1>main.cpp 1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(12) : error C2065: 'x'*: identificateur non déclaré 1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(12) : error C2065: 'y'*: identificateur non déclaré 1>c:\users\pc\documents\visual studio 2008\projects\hello\hello\main.cpp(12) : error C2143: erreur de syntaxe*: absence de ')' avant ';' 1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\pc\Documents\Visual Studio 2008\Projects\hello\hello\Debug\BuildLog.htm" 1>hello - 3 erreur(s), 0 avertissement(s) ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <iostream> #include <windows.h> using namespace std; int main() { HDC hdc = GetDC(NULL); COLORREF pix = GetPixel(hdc, 860, 540); ReleaseDC(NULL, hdc); (SetPixelV(hdc, x, y, RGB(255, 0, 0)); system("Pause"); }
Bon, c'est pas du copier-coller non plus, tu sais... Donne-leur une valeur à tes x et y!
Prends les vraies dimensions de ton écran (pour faire ça en C, c'est pas encore le moment), divise-les par deux et mets-les là où il faut!
Et pourquoi appelles-tu SetPixelV() après le ReleaseDC() ? Ça veut dire quoi "release" d'après toi?
La programmation, ce n'est pas recopier des formules magiques, c'est comprendre ce qu'on écrit! Ce n'est pas pour rien que j'ai conseillé de lire la doc sur MSDN...
@thebarbarius
Tu n'as pas réagit à mon premier message, tu continues a faire perdre du temps à ceux qui veulent t'aider (Médinoc est d'une patience d'ange avec toi...)
Tu peux prendre le temps d'apprendre les bases du C++ avant d'aller plus loin ?
J'apprendrai après, mais il me faut se programme.
Ma resolution est de 1920 x 1080.
C'est bien ce qui me semblait...
Comment veux tu écrire un programme dans un langage que tu ne connais pas ? Ca n'a pas de sens d'utiliser un langage et de l'apprendre seulement après.
Ce que tu souhaites, c'est que l'on te fasse le programme à ta place. Ce qui veut dire que tu n'as pas compris que c'était un forum d'entraide, pas un forum de service, où l'on amène ses projets et d'autres personnes font le boulot à ta place.
Préviens si c'est que tu recherches, il y a une rubrique "Offre d'emploi" sur le forum, je transférerai ta discussion dedans.
J'ai fais des tutoriels C++ mais sa m'aide pas a creer mon programme.
Ce sont des fonctions bien spécifique que je ne sais pas utiliser.
Donc je demande de bien vouloir m'aider.
De plus j'apprendrai plein de nouvelle chose pour l'occasion.
Tu es prié de ne pas t'enfoncer plus et de ne pas me donner d'arguments supplémentaire contre toi, merci.
Tu as des problèmes de lecture (ce qui est possible, puisque tu ne comprends pas un message comme "'x'*: identificateur non déclaré" ; pourtant ton code est court et "x" n’apparaît pas souvent, fait un Ctrl+F si tu n'arrives pas à trouver les "x" dans ton code)
Je sais que l'on va encore passé pour un forum de méchants qui n'aident pas les pauvres débutants, mais il y a une limite quand même : on aide que les débutants qui veulent apprendre, pas ceux qui veulent qu'on fasse le boulot à leurs places