Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1505 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  récupérer la couleur d'un pixel sur l'écran ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

récupérer la couleur d'un pixel sur l'écran ?

n°822943
bob_lepong​e
T'as besoin d'un problème ?
Posté le 13-08-2004 à 23:00:37  profilanswer
 

Salut à tous !
 
Je cherche un moyen de récupérer la couleur d'un pixel sur l'écran.
Comment faire ?

mood
Publicité
Posté le 13-08-2004 à 23:00:37  profilanswer
 

n°823067
103e
Posté le 14-08-2004 à 10:59:51  profilanswer
 

Bonjour
Adagraph est une librairie graphique pour Windows (j'ignore si elle existe sous Linux) qui permet, entre autres, de récupérer un pixel dans une fenetre créée par le programme.
Mais je ne crois pas que ce soit ce que tu cherche...

n°823123
bob_lepong​e
T'as besoin d'un problème ?
Posté le 14-08-2004 à 12:25:00  profilanswer
 

Merci pour ta réponse.
 
En fait, je viens de regarder dans Adagraph, mais là, mes connaissances sont un peu limitées dans le domaine.
J'ai essayé ceci :  
 
with ada.text_io; use ada.text_io;      
with adagraph; use adagraph;
 
procedure z2
is  
   couleur:integer;
   function GetColorPixel (X, Y: Integer) return Integer;
   pragma Import (C, GetColorPixel, "GetColorPixel" );
     
begin
   for x in 0..200
   loop
      for y in 0..200
      loop
         couleur:=getcolorpixel (x,y);
         put_line (integer'image(couleur));
      end loop;
   end loop;
end z2;
 
-> problème : affiche "-5" pour chaque point ...
J'ai vu par ailleurs, si j'ai bien compris, que l'écran en lui-même était une fenêtre et qu'on peut récupérer son contexte. Mais là, je ne vois pas comment faire avec ces éléments.
Une idée ?

n°823484
103e
Posté le 15-08-2004 à 14:03:46  profilanswer
 

Adagraph n'est sans doute pas capable de gérer un fenetre qu'il n'a pas créé lui-même. Avec

Code :
  1. for X in 0..200 loop
  2.       for Y in 0..200 loop
  3.          Adagraph.Put_Line ( Adagraph.Color_Type'Image ( Adagraph.Get_Pixel ( X, Y ) ) );
  4.       end loop;
  5.    end loop;


l'exception ADAGRAPH.CREATE_THREAD_FAILED est levée. Donc il ne gère pas l'écran...

n°823485
103e
Posté le 15-08-2004 à 14:04:29  profilanswer
 

PS : essaye une autre librairie qu'Adagraph.

n°824174
bob_lepong​e
T'as besoin d'un problème ?
Posté le 16-08-2004 à 13:39:39  profilanswer
 

Peut-être avec des bibliotheques comme "claw", "glut", ou "jewl" ?

n°835134
bob_lepong​e
T'as besoin d'un problème ?
Posté le 28-08-2004 à 15:46:58  profilanswer
 

J'ai trouvé ceci sur le web:
 
Pour capturer l'écran Windows, il suffit d'obtenir un DC (Device Context) sur le bureau, en utilisant la procédure suivante :
 
function GetWinBmp: TBitmap;
var
  DC: HDC;
  Canvas: TCanvas;
  R: TRect;
begin
  // Création du Bitmap
  Result := TBitmap.Create;
  Result.Width := Screen.Width;
  Result.Height := Screen.Height;
  // Récupération du DC
  DC := GetDC(0);
  // Affectation du Canvas
  Canvas := TCanvas.Create;
  Canvas.Handle := DC;
  // Récupération de l'image
  R := Rect(0, 0, Screen.Width, Screen.Height);
  Result.Canvas.CopyRect(R, Canvas, R);
  // Libération du Canvas
  Canvas.Free;
  // Libération du DC
  ReleaseDC(0, DC);
end;
 
 
En Ada, ça donnerait quoi ?

n°835511
103e
Posté le 29-08-2004 à 15:08:57  profilanswer
 

C'est en quel langage ?

n°835619
HelloWorld
Salut tout le monde!
Posté le 29-08-2004 à 17:57:57  profilanswer
 

TBitmap : c'est la VCL (Delphi). Pas utilisable en ADA.
Je pige mieux du coup sa question sur l'assembleur.
sponge bob : tu peux normalement le faire depuis ADA directement, si tu peux utiliser win32. Quand j'utilisais Aonix Object ADA c'était possible. A peu de choses près le code donné dans ton autre topic devrait marcher.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°835841
bob_lepong​e
T'as besoin d'un problème ?
Posté le 29-08-2004 à 22:09:27  profilanswer
 

Salut à tous !
 
Milles excuses à ceux auxquels j'ai oublié de répondre auparavant.
J'ai trouvé ce que je cherchais.
Petit exemple :
 
with System;
with ada.text_io; use ada.text_io;
 
procedure z  
is  
   type tableau is array (0..800,0..600) of integer;
   t:tableau;
   pragma Linker_Options ("-luser32 -lgdi32" );
   subtype HDC is System.Address;
   subtype HWND is System.Address;
   my_hdc:HDC;
   my_hwnd:HWND;
   c:integer;
   bool:boolean;
   function GetDC (my_hwnd0 : HWND) return HDC;
   pragma Import (Stdcall, GetDC,"GetDC" );
   function GetPixel (my_hdc0:HDC;x:integer;y:integer) return integer;
   pragma Import (Stdcall, GetPixel,"GetPixel" );
   function setPixelv (my_hdc0:HDC;x:integer;y:integer;c:integer) return boolean;
   pragma Import (Stdcall, SetPixelV,"SetPixelV" );
begin
   my_hdc:=getdc (System.Null_Address);
   for i in 0..800
   loop
      for j in 0..600
      loop
         c:=getpixel (my_hdc,i,j);
         t(i,j):=c;              
      end loop;
   end loop;
   for i in 0..800
   loop
      for j in 0..600
      loop
         bool:=setpixelv (my_hdc,i,j,t(i,j)+200);          
      end loop;
   end loop;
end z;
 
A+

mood
Publicité
Posté le 29-08-2004 à 22:09:27  profilanswer
 

n°930841
TontonFran​cky94
Posté le 23-12-2004 à 12:08:33  profilanswer
 

Cette methode est pour recuperer un pixel HS sur un ecran
merci

n°930956
HelloWorld
Salut tout le monde!
Posté le 23-12-2004 à 14:11:55  profilanswer
 

De rien.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  récupérer la couleur d'un pixel sur l'écran ?

 

Sujets relatifs
[C] Récupérer un paramètre en ligne de commande[JAVA] Recupérer le hostname d'un poste
[C ] Récuperer le nom d'une machine d'apres son IP + new pb concat !VBA Excel Recuperer le nom du dossier avec un bouton parcourir
Ne récuperer qu'un nombre de caractères limité d'un champ varcharimpression differente de l'ecran
Problème pour récuperer des variables POST - Débutant -recuperer les noms des colonnes d'une table (database)
[Access] Récupérer le nom du controle actifRécupérer les valeurs du résultat d'une requête
Plus de sujets relatifs à : récupérer la couleur d'un pixel sur l'écran ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR