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

C

 > 

Windows

 > 

Multimédia

 > 

couleur de pixel C sous Windows


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

couleur de pixel C sous Windows

jeudi 8 novembre 2007 à 19:15:16 | couleur de pixel C sous Windows

monchr

Bonjour,

Je tente de tester la couleur de pixels sur quelques points de l'écran. Mais mon compte donne pas l'effet escompté : il se compile, il tourne, mais m'indique à chaque fois que la couleur demandé est 0,0,0 (R,G,B). Bien entendu, j'ai vérifié que ce n'était pas le cas et qu'il aurait du m'indiquer une couleur. Par contre, il m'indique bien la résolution d'affichage.

Les lib sont configurés dans le compilateur directement. J'ai bien indiqué celle pour getPixel(). Le sleep() me permet d'avoir le temps d'ouvrir l'application de mon choix pour faire le test : idéalement, je voudrais que cela fonctionne avec un jeu vidéo.

Je souhaite faire mon programme en C sous Windows. J'ai lu des articles qui se rapproche de ce que je souhaite faire, mais malgré cela, je n'ai pas trouvé la solution à mon problème, le code semble correct.

Voici le code :
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <conio.h>
#include <unistd.h>
#include <errno.h>
#include <strings.h>
#include <unistd.h>
#include <winsock.h>

int main(int argc, char * argv[])
{
    int R,G,B;
    Sleep(10000);
    HWND hFore = GetForegroundWindow();

    HDC ScreenSrc;
    ScreenSrc = GetDC(NULL); 
   
    if (ScreenSrc == NULL)
    {
        printf("erreur\n");
    }
    else {
        COLORREF Pix;
        Pix = GetPixel(ScreenSrc, 100, 100);
        R = GetRValue(Pix);//->valeur du rouge (0-255)
        G = GetGValue(Pix);//->valeur du vert (0-255)
        B = GetBValue(Pix);//->valeur du bleu (0-255)
        printf("%i,%i,%i\n", R,G,B);
       
        int ScreenX = GetDeviceCaps(ScreenSrc, HORZRES);
        int ScreenY = GetDeviceCaps(ScreenSrc, VERTRES);
        B = GetBValue(Pix);//->valeur du bleu (0-255)
        printf("%i,%i\n", ScreenX, ScreenY);
    }

   system("pause");

     return 0;
}

Je remercie d'avance ceux qui m'aideront dans la résolution de ce problème.
jeudi 8 novembre 2007 à 23:18:45 | Re : couleur de pixel C sous Windows

gamemonde

Membre Club
bien pourquoi es-tu en mode console tu peux pas comme cela dessiner un pixel en mode console . si tu veux faire un jeux creer une application windows avec winmain et createwindowsex
vendredi 9 novembre 2007 à 16:10:10 | Re : couleur de pixel C sous Windows

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Dans l'aide, il est précisé que GetPixel ne fonctionne pas sur tous les contextes de périph.
Tu peux voir s'il le supporte avec GetDeviceCaps.
M'enfin c'est curieux quand même...

Sinon, il y a BitBlt qui est utilisé pour tout ce qui est impression d'écrans. Tu peux par exemple t'en servir pour récupérer un zone de l'écran dans ta bitmap et accèder à la couleur par la suite.


3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
dimanche 11 novembre 2007 à 19:02:27 | Re : couleur de pixel C sous Windows

monchr

Au sujet de mon mode de développement, en fait je me suis posé dans un contexte particulier : j'utilises les librairires de cygwin, ce qui me permet d'avoir acces a des fonction existantes normalement sous unix mais pas sous windows (sauf erreur de ma part). Et comme je trouve les fonctions unix assez sympa... ;-)

Au sujet du programme en lui même, ce n'est pas un jeu vidéo que je développe, mais un outil qui analyserait l'écran lors du lancement d'un jeu vidéo. Ceci pour faciliter l'acces a des options communautaires (lier un site web Intranet au jeu).

Si getpixel ne fonctionne pas sur tous les contextes de périph, j'ai peut etre suivi une mauvaise piste, je vais voir du coté des fonctions que rt15 m'annonce. J'écrirai ce que donne mes recherches dans ce sens là.

Merci et à bientôt

mardi 13 novembre 2007 à 12:17:15 | Re : couleur de pixel C sous Windows

rt15

Membre Club Administrateur CodeS-SourceS
re,

Bin j'ai fait des éssais, et GetPixel à l'air de très bien marcher. Voilà le source.

Je vois pas à vu de nez ce qui cloche dans ton source, je vais l'essayer.

Mais si tu veux analyser des portions d'écrans, GetPixel risque d'être un peu lent : un appel de fonction par pixel. BitBlt permet de copier des portions, mais reste assez lent... M'enfin j'ai super pas compris ce que tu veux faire.


3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
mercredi 14 novembre 2007 à 12:41:56 | Re : couleur de pixel C sous Windows

rt15

Membre Club Administrateur CodeS-SourceS
Erf, ton code marche très bien chez moi...


3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08


Cette discussion est classée dans : int, couleur, include, pix, screensrc


Répondre à ce message

Sujets en rapport avec ce message

couleur pixel [ par kirby94460 ] bonjour a tous vioici mon probleme :je veux recuperer la couleur d'un pixel sur une apllication flash (sa classname est ShockwaveFlash) voici mon code detail fstream [ par edf102 ] bonjour je suis en train de faire un programme qui gere des fichiers en c++pour ce faire jutilise fstream.hcomme ca#include #include  using namespace Utilisation du settimer [ par titi4659 ] Bonjour,je souhaiterai utiliser le SetTimer() mais j'ai des problèmes avec:J'utilise bien une fonction callback dans laquelle je vais écrire dans un f Erreur de segmentation d'un simple client http sous linux !! [ par nassimatique ] #include #include #include #include #include #include #include #define TAILLE 4096 <b getpixel() en mode console ?? [ par kirby94460 ] Bonjour j'utilise dev c++ en mode console et en mode C(nn pas C++) voici mon code :#include #include #include #include <br parcours en profondeur dans un graphe [ par Tavarez59282 ] Bonjour j'ai un sujet de tp à realiser sur les graphes à l'aide de listes d'adjacence et j'ai un incident de segmentation dans mon code lorsque j'exec Problème avec le Timer d'ALLEGRO [ par tibe18453636 ] J'ai un problème avec un jeu (une sorte de pong) que j'ai développé sous dev-cpp avec Allegro.Apparament cela vient du timer que jutilise pour limiter probleme création d'une clé de registre [ par stefbuet ] Salut, en regardant les sources du site, j'ai réussi à extraire un pti bou de code mais sa ne marche pas completement:en effet, le chemin mycompagny/m La condition IF [ par lunnatick ] Bonjour, j'ai essayer de compiler le code source suivant: [code]#include #include int main(int argc, char *argv[]) { long age = 20; if (a Resource et Donnees [ par wxccxw ] Hello, voila premierement je donne mon code simple pour gerer une dialog Box resource : #include "resource.h" #include #include #include #include


Nos sponsors


Sondage...

Comparez les prix

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,265 sec (3)

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