begin process at 2012 05 29 01:17:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

GUI

 > 

Couleur de pixel d'une copie de l'ecran


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

Couleur de pixel d'une copie de l'ecran

lundi 29 décembre 2008 à 15:43:03 | Couleur de pixel d'une copie de l'ecran

espritlune

En cherchant sur les forum et dans les codes sources j'ai trouvé un excellent code de BruNews le chat :

http://www.cppfrance.com/codes/BMP-FILE-DEPUIS-HDC-PUR-API-WIN32_11128.aspx

Mais voila, je ne désir pas crée un fichier mais seulement avoir une copie de l'écran en mémoire et y chercher des couleurs aux coordonnée X,Y.

J'ai essayé :


void PhotoHdcEcran(HDC hdc)
{
  hdc = CreateDC("DISPLAY", 0, 0, 0);
}
 
void HdcCouleur(HDC hdc, int x, int y, unsignedchar *r, unsignedchar *g, unsignedchar *b)
{
  COLORREF Pix;
  Pix = GetPixel(hdc, x, y);
  *r = GetRValue(Pix);
  *g = GetGValue(Pix);
  *b = GetBValue(Pix);
}

C'est rapide et fonctionne... mais dans mon cas ne me convient pas. pourquoi?

Car dès que l'on demande les couleurs en x,y du hdc on obtient les couleurs au moment ou on les demande et non celle du moment ou l'on a crée le hdc.
Comment faire pour être rapide car je dois faire des recherche rapide et fréquente sur un écran fixe pris en photo à divers moments.

Merci d'avance...


lundi 29 décembre 2008 à 18:22:16 | Re : Couleur de pixel d'une copie de l'ecran

ed73

Bonsoir,

Il faut créer un DC mémoire (CreateCompatibleDC) et un bitmap de la taille de l'écran (CreateCompatibleBitmap), associer ce bitmap au DC mémoire (SelectObject) et copier l'écran dedans (BitBlt), ainsi tu auras bien une photo de ton écran au moment de la création du DC. N'oublie pas de libérer les ressources une fois le traitement terminé.

C'est exactement ce principe qu'on utilise pour faire du double buffering.

ed73

lundi 29 décembre 2008 à 18:44:19 | Re : Couleur de pixel d'une copie de l'ecran

espritlune

Merci,

Quelle fonction me permettrait de récuperer les couleurs de mon bitmap rapidement?
lundi 29 décembre 2008 à 18:51:58 | Re : Couleur de pixel d'une copie de l'ecran

ed73

La même que celle que tu as écrite sauf que le hdc passé en paramètre sera le DC mémoire contenant la photo de ton écran.

ed73


Cette discussion est classée dans : copie, couleurs, hdc, pix, unsignedchar


Répondre à ce message

Sujets en rapport avec ce message

Copie de fichiers de nom long avec Visual C++ sous Windows98 [ par ABT ] Salut, Je développe une application avec Visual C++, l'une de ses est de copier des fichiers à partir d'un répertoire vers un autre. J'utilise pour ce Redessiner le Bureau [ par ZoB ] SalutDans un prog j'affiche le papierpeint sur l'ecran a l'aide de : HDC hdc = CreateDC("DISPLAY",0,0,0); PaintDesktop(hdc);Quand je quitte l'applica Redessiner le Bureau [ par ZoB ] SalutDans un prog j'affiche le papierpeint sur l'ecran a l'aide de : HDC hdc = CreateDC("DISPLAY",0,0,0); PaintDesktop(hdc);Quand je quitte l'applica Probleme de HDC [ par Crystalin ] Je cherche a mettre le HDC du desktop de windows ou d'un programme deja lancer ... je travaille sous VC++ et je ne fait pas un MFC ...Je pensé que : G Probleme de HDC [ par Crystalin ] Je cherche a mettre le HDC du desktop de windows ou d'un programme deja lancer ... je travaille sous VC++ et je ne fait pas un MFC ...Mon but c de rem Remplacer la copie de fichier de Windows [ par MangaII ] Salut !Quelqu'un sorai-t-il comment on pe remplacer la fonction de copie de fichier sous Windows par un programme maison !Mon but est d'optimiser la c Remplacer la fonction de copie de fichier sous Windows [ par MangaII ] Salut !Quelqu'un sorai-t-il comment on pe remplacer la fonction de copie de fichier sous Windows par un programme maison !Mon but est d'optimiser la c Copie de fichier avec barre de progression [ par JMGR ] Salut,Comment peut-on copier un fichier avec une barre de progression ? probleme offscreen en GDI [ par pipo ] j'ai un soucis en GDI :ce que je veux, c'est de travailler sur une zone offscreen pour y animer/coller tout mon graphisme, puis de coller cette zone s GDI : probleme de splitting en offscreen [ par pipo ] j'ai un soucis en GDI :ce que je veux, c'est de travailler sur une zone offscreen pour y animer/coller tout mon graphisme, puis de coller cette zone s


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,312 sec (4)

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