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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 185 fois - Téléchargée 30 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
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5 -
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.