IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Lire la couleur d'une image jpeg


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par défaut Lire la couleur d'une image jpeg
    Salut
    je veut lire une couleur dans un point précis d'une image que j'ai ouvert dans un Timage
    ce qui veut dire
    par exemple : je donne les coordonée X,Y
    ou mieux pointer la souris sur cette couleur et un timer detecte cette couleur et l'écris dans un tedit

    j'ai beau chercher dans plusieurs sources mais je trouve pas une solution exacte
    je ne sais quoi utiliser Scanline ou autre
    je peut déja savoir combien de couleurs se trouve dans une image

    Merci de m'aider

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Par défaut
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Function Tgraph.CouleurPointEcran(x,y:Integer):TColor;
    Var
      Dc : HDC;
    begin   
      DC := CreateDC('DISPLAY',Nil,Nil,Nil);
      Try
        Result:=GetPixel(DC,X,Y);
      Finally
        DeleteDc(DC);
      End;
    end;
     
    Procedure machin
    var 
    T  :  Tcolor;
    point : TPoint;
    begin
          point := ClientToScreen(GetCursorPos); // La méthode ClientToScreen permet de convertir les coordonnées d'un point exprimées relativement au contrôle en coordonnées relatives à l'écran.
          T:=CouleurPointEcran(Point.x, point.y); // Appelez GetCursorPos pour déterminer les coordonnées écran actuelles du curseur de la souris.
    // et voilà ça devrait être bon
    ....
    end;
    et tout ceci est déjà soit dans la FAQ, soit sur le forum...!!

    à+

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par défaut
    salut
    merci pour la réponse
    mais j'ai quelques bugs
    si tu peut m'éclairir un peu :

    voila le code que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Function Tgraph.CouleurPointEcran(x,y:Integer):TColor;
    Var
      Dc : HDC;
    begin
      DC := CreateDC('DISPLAY',Nil,Nil,Nil);
      Try
        Result:=GetPixel(DC,X,Y);
      Finally
        DeleteDc(DC);
      End;
    end;
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
    T  :  Tcolor;
    point : TPoint;
    begin
          point := ClientToScreen(GetCursorPos); // La méthode ClientToScreen permet de convertir les coordonnées d'un point exprimées relativement au contrôle en coordonnées relatives à l'écran.
          T:=CouleurPointEcran(Point.x, point.y); // Appelez GetCursorPos pour déterminer les coordonnées écran actuelles du curseur de la souris.
    // et voilà ça devrait être bon
    end;
     
    end.
    les bugs c'est dans :
    Function Tgraph.CouleurPointEcran(x,y:Integer):TColor;
    le prob : la fonction nécessite un type de résultat
    2: identificateur non déclaré X,Y
    j'ai resolu celui-la : j'ai mis dans var : X,Y : integer;
    et d'autres ...

    peut tu me dire la soluce stp

  4. #4
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut
    salut

    Ta fonction est appelé par ta form1 donc ta déclaration doit être :
    Function Tform1.CouleurPointEcran(x,y:Integer):TColor;

    bye

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut!

    Je propose ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
    couleur:TColor;
    r,v,b:integer;
    begin
      couleur:=Getpixel(getdc(0),mouse.cursorpos.x,mouse.cursorpos.y);
      r:=getrvalue(couleur);
      v:=getgvalue(couleur);
      b:=getbvalue(couleur);
      edit1.text:='$'+inttohex(couleur,6);
      Panel1.Color:=couleur;
    end;

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par défaut
    merci
    je test et je vous répond tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [libjpeg] Lire une image jpeg
    Par Flaherty Mc Coillean dans le forum Débuter
    Réponses: 1
    Dernier message: 11/03/2011, 13h26
  2. Lire bit à bit une image JPEG
    Par moumoute15 dans le forum Images
    Réponses: 1
    Dernier message: 10/06/2006, 15h13
  3. [Graphique] Comment compter les couleurs d'une image ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 27
    Dernier message: 16/02/2005, 18h17
  4. Copier une image (jpeg) dans le presse papier
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/07/2002, 14h51
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo