Connaïtre les valeurs rgb du pixel selectionné par un clic de souris

5/5 (1 avis)

Snippet vu 6 549 fois - Téléchargée 32 fois

Contenu du snippet

Prevoir un bouton et trois edit.text

Source / Exemple :


procedure TForm1.Image1Click(Sender: TObject);

 var

  PositionSouris: TPoint;
  R, G, B, X, Y : integer;
  s:string;
  valeur_couleur : Tcolor;
begin
  GetCursorPos(PositionSouris);
  valeur_couleur := canvas.pixels[PositionSouris.X,PositionSouris.Y];
  R := GetRValue( ColorToRGB(valeur_couleur));
  G := GetGValue( ColorToRGB(valeur_couleur));
  B := GetBValue( ColorToRGB(valeur_couleur));
  str(R,s);
  edit1.text:=s;
  str(G,s);
  edit2.text:=s;
  str(B,s);
  edit3.text:=s;
  
end;

A voir également

Ajouter un commentaire Commentaires
cs_MAURICIO
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
4 avril 2005 à 17:29
Ton code ne peux pas fonctionner vu que tu récupères le pixel du Canvas de la TForm !!!
De plus, la position souris de l' ecran est une chose et la position de ton TImage en est une autre ...
Voilà une solution:

var
PositionSouris, PositionClickImage: TPoint;
R, G, B, X, Y : integer;
s:string;
valeur_couleur : Tcolor;
begin
GetCursorPos(PositionSouris);

// Récupérer la position de la souris sur l' image :
PositionClickImage := Image1.ScreenToClient(PositionSouris);

valeur_couleur := Image1.canvas.pixels[PositionClickImage.X,PositionClickImage.Y];
R := GetRValue( ColorToRGB(valeur_couleur));
G := GetGValue( ColorToRGB(valeur_couleur));
B := GetBValue( ColorToRGB(valeur_couleur));
str(R,s);
edit1.text:=s;
str(G,s);
edit2.text:=s;
str(B,s);
edit3.text:=s;

// Afficher la position de la souris :
edit4.text:=intToStr(PositionClickImage.X);
edit5.text:=intToStr(PositionClickImage.Y);
end;

Voilà, ça serait bien que tu essayes ton code avant de poster :(

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.