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

  1. #21
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Pas de soucis!
    Ce fût intéressant en plus !

  2. #22
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    C'est possible d'afficher un X dans la coordonée X,Y précisé ?

    maintenant je peut le faire dans la form en géneral mais pas dans le timage

  3. #23
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Je ne comprends pas ce que tu souhaites faire la

    Tu m'as demandé une fonction qui puisse retourner les couleurs situés dans un TImage en lui spécifiant les coordonnées X et Y.

    La, tu me demandes de faire la même chose mais en dehors du TImage ? Que sur la Form ? J'avoue ne pas saisir où tu veux en venir..

    Quant la à question :
    C'est possible d'afficher un X dans la coordonée X,Y précisé
    Que veux-tu dire par afficher un X ? Tu veux dire mettre une croix à sur le TImage à l'emplacement des coordonnées ?

  4. #24
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Que veux-tu dire par afficher un X ? Tu veux dire mettre une croix à sur le TImage à l'emplacement des coordonnées ?
    oui exactement ca

    je peut faire cela en dehors du timage mais dans le timage j'ai pas pus

    merci

  5. #25
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Citation Envoyé par visualk Voir le message
    oui exactement ca
    Je regarde ce que je peux faire!

    Citation Envoyé par visualk Voir le message
    je peut faire cela en dehors du timage mais dans le timage j'ai pas pus

    merci
    Etrange, moi ça marche niquel! Donne moi ton code

  6. #26
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Re,

    Voici la nouvelle fonction :
    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
    25
    26
    function donnerCouleur(monImage:TImage;PositionX:integer;PositionY:integer;afficherPosition:boolean):TMyColor;
    var
      couleurChoisie:TMyColor;
      positionDuPixel:TPoint;
      tempImage:TImage;
    begin
     
      if(afficherPosition)then
      begin
        TempImage:=TImage.Create(monImage);
        TempImage.Parent:=monImage.Parent;
        TempImage.Left:=monImage.Left;
        TempImage.Top:=monImage.Top;
        TempImage.Width:=monImage.Width;
        TempImage.Height:=monImage.Height;
        TempImage.Canvas.Brush.Style:=bsClear;
        TempImage.Transparent:=true;
        TempImage.Canvas.Font.Color:=clRed;
        TempImage.Canvas.TextOut(PositionX,PositionY,'+');
      end;
     
      positionDuPixel:=monImage.ClientToScreen(Point(PositionX,PositionY));
      couleurChoisie.couleurHexa:='$'+inttohex(couleurChoisie.couleur,6);
      couleurChoisie.couleur:=Getpixel(GetDC(0),positionDuPixel.x,positionDuPixel.y);
      Result:=couleurChoisie;
    end;
    Ca mets une croix rouge (un '+' plus précisement) à l'endroit du pixel choisi ... A toi d'améliorer par la suite car j'ai tout mis dans une fonction...

  7. #27
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    merci j'ai fais cela :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    type TMyColor=record
      couleur:TColor;
      couleurHexa:String;
     
    end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    function donnerCouleur(monImage:TImage;PositionX:integer;PositionY:integer;afficherPosition:boolean):TMyColor;
    var
      couleurChoisie:TMyColor;
      positionDuPixel:TPoint;
      tempImage:TImage;
    begin
     
      if(afficherPosition)then
      begin
        TempImage:=TImage.Create(monImage);
        TempImage.Parent:=monImage.Parent;
        TempImage.Left:=monImage.Left;
        TempImage.Top:=monImage.Top;
        TempImage.Width:=monImage.Width;
        TempImage.Height:=monImage.Height;
        TempImage.Canvas.Brush.Style:=bsClear;
        TempImage.Transparent:=true;
        TempImage.Canvas.Font.Color:=clRed;
        TempImage.Canvas.TextOut(PositionX,PositionY,'+');
      end;
     
      positionDuPixel:=monImage.ClientToScreen(Point(PositionX,PositionY));
      couleurChoisie.couleurHexa:='$'+inttohex(couleurChoisie.couleur,6);
      couleurChoisie.couleur:=Getpixel(GetDC(0),positionDuPixel.x,positionDuPixel.y);
      Result:=couleurChoisie;
     
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      couleurSelectionnee:TMyColor;
    begin
      couleurSelectionnee:=donnercouleur(Image1,50,50);
      Edit1.Text:=couleurSelectionnee.couleurHexa;
      Panel1.Color:=couleurSelectionnee.couleur;
     
     
    end;
     
    end.
    le beug c'est : pas assez de parametres originaux dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      couleurSelectionnee:=donnercouleur(Image1,50,50);

  8. #28
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Evidemment! J'aurai pensé que tu serais capable de voir que j'avais rajouté un paramètre ...

    Il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    couleurSelectionnee:=donnercouleur(Image1,50,50,true);
    Avec true, ça affiche le point, sinon, avec false, ça ne l'affiche pas!

  9. #29
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Ca marche juste un probleme que quand le + S'affiche un fond blanc cache l'image

    merci beaucoup
    ya pas de résolu au carrée ?

  10. #30
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Chez moi ça ne le fait pas. Peux-tu me dire comment tu charges l'image et quelle est l'extension de celle-ci ?

    Tiens, essaie ça quand même :
    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
    25
    26
    27
    28
    29
    function donnerCouleur(monImage:TImage;PositionX:integer;PositionY:integer;afficherPosition:boolean):TMyColor;
    var
      couleurChoisie:TMyColor;
      positionDuPixel:TPoint;
      tempImage:TImage;
    begin
     
      if(afficherPosition)then
      begin
        TempImage:=TImage.Create(monImage);
        TempImage.Parent:=monImage.Parent;
        TempImage.Left:=monImage.Left;
        TempImage.Top:=monImage.Top;
        TempImage.Width:=monImage.Width;
        TempImage.Height:=monImage.Height;
        TempImage.Canvas.Brush.Style:=bsClear;
        tempImage.Canvas.Brush.Color:=clWhite;
        tempImage.Picture.Bitmap.TransparentColor:=clWhite;
        TempImage.Transparent:=true;
        TempImage.Canvas.Font.Color:=clRed;
        TempImage.Canvas.TextOut(PositionX,PositionY,'+');
      end;
     
      positionDuPixel:=monImage.ClientToScreen(Point(PositionX,PositionY));
      couleurChoisie.couleurHexa:='$'+inttohex(couleurChoisie.couleur,6);
      couleurChoisie.couleur:=Getpixel(GetDC(0),positionDuPixel.x,positionDuPixel.y);
      Result:=couleurChoisie;
     
    end;

  11. #31
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    j'ai utilisé ton nouveau code mais ca m'affiche juste une petite partie qui est derriere le + mais le reste de l'image esti invisible juste du blanc

    j'utilise le timage biensure et je charge a l'aide l'inspecteur d'objet l'image ' Jpeg' ou des fois 'Jpg'

  12. #32
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    Très étrange tout ça!

    Serait-il possible que tu fasses un nouveau projet contenant uniquement un TImage et un TButton et que lors du clic sur le Button, tu récupères le pixel aux coordonnées (X,Y) ?
    Car c'est très étrange, chez moi ça fonctionne très bien.
    Faudrait donc que tu nous postes le code du nouveau projet avec l'image pour qu'on puisse y jetter un oeil ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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