C'est déjà fait dans votre code ! 🎯
Regardez dans **PixelUnit.pas** :
```pascal
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift:
TShiftState; X, Y: Single);
begin
var color := dbmp.GetPixel(Trunc(x),Trunc(y)); // ← Récupère la couleur
memo1.lines.add('X: '+floattostr(X)+' Y: '+floattostr(Y)+' '+AlphaColorToString(Color));
colorbox1.Color:=color; // ← Affiche la couleur
end;
```
## Comment ça fonctionne :
1. **`dbmp.GetPixel(Trunc(x), Trunc(y))`** → récupère la couleur du pixel aux coordonnées (x, y)
2. **`dbmp`** doit être **mappé** en lecture avant (déjà fait dans `EllipsesEditButton1Click`) :
```pascal
image1.Bitmap.Map(TMapAccess.read, dbmp);
```
3. **`AlphaColorToString(color)`** → convertit la couleur en texte
## Si vous voulez en temps réel (pas juste au clic) :
```pascal
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single);
begin
if dbmp.Width > 0 then // Vérifie que le bitmap est chargé
begin
var color := dbmp.GetPixel(Trunc(x), Trunc(y));
Label1.Text := AlphaColorToString(color);
ColorBox1.Color := color;
end;
end;
```
Besoin d'aide pour l'implémenter ?
Moi :
Non pas d'aide m'ai j'obtiens des résultats faux
Le problème vient probablement du **redimensionnement du TImage** !
En FMX, quand on affiche une image dans un TImage, elle peut être zoomée/réduite. Les coordonnées de la souris doivent être ajustées :
```pascal
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift:
TShiftState; X, Y: Single);
var
AdjustedX, AdjustedY: Single;
begin
// Convertir les coordonnées du contrôle vers le bitmap
AdjustedX := (X / Image1.Width) * Image1.Bitmap.Width;
AdjustedY := (Y / Image1.Height) * Image1.Bitmap.Height;
var color := dbmp.GetPixel(Trunc(AdjustedX), Trunc(AdjustedY));
memo1.lines.add('X: '+floattostr(AdjustedX)+' Y: '+floattostr(AdjustedY)+' '+AlphaColorToString(Color));
colorbox1.Color := color;
end;
```
**Ça fait quoi ?** Ramène les coordonnées de la taille du TImage à la taille réelle du bitmap.
Essayez ça et testez. Ça devrait corriger les faux résultats !
Partager