Je veux insérer une image JPG puis lorsque je déplace la souris (OnMouseMove),
J’affiche ses propriétés RGB.
Je veux insérer une image JPG puis lorsque je déplace la souris (OnMouseMove),
J’affiche ses propriétés RGB.
Tous d'abord bienvenue
Tu veux certainement dire que tu veux afficher les valeurs RGB de la couleur se situant sous la souris...
Tu places un composant TImage qui vas contenir ton image.
Il existe un evenement OnMousseMove lier a ce composant qui te permet de connaitre la position de la souris sur ce composant (X et Y entiers).
ensuite tu fais correspondre cette position de souris avec un pixel de ton image.
bonjour
c bon pour l'affichage, mais lorsque je déplace la souris sur cette image elle disparait. en plus lorsque c'est un bitmap c possible d'afficher les propriétés RGB, mais quand c JPG c difficile, il m'affiche un message d'erreur.
Converti ton JPEG en Bitmap en utilisant la propriété Assign d'un objet TBitmap (Graphics::TBitmap)
ensuite dans l'evenement OnMouseMove() place les lignes suivantes.tu verras ce que te donne la valeur de X et de Y.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Caption="position X ="; Caption=Caption+IntToStr(X); Caption=Caption+" position Y ="; Caption=Caption+IntToStr(Y);
l'image jpg apparait, j'ai besoin d'afficher les valeurs RGB de l'image par contre pour les coordonnées x et y c fait.
au moins là c'est clair... on connait reelement ton probleme.
qu'as tu deja essayer.
j'ai essayé sous une image Bitmap et ça marche
mais quand les couleurs ne sont pas affichées en hexa (ex: $0001ff30), il m'affiche un message d'erreur parccequ'il ne reconnait pas clblack, clwhite, ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 AnsiString color; color = ColorToString(Image1->Canvas->Pixels[X][Y]); Label4->Caption = StrToInt64("$" + (color.SubString(4,2))); //pour blue Label5->Caption = StrToInt64("$" + (color.SubString(6,2))); //pour green Label6->Caption = StrToInt64("$" + (color.SubString(8,2))); //pour red
je pense qu'il existe une fonction mais?
Hello,
Voici ce que tu recherches, je pense:
ps : Attention car le TColor c'est pas du RGB mais plutot du BGR
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { TColor color = Image1->Canvas->Pixels[X][Y]; BYTE R = GetRValue(color); BYTE G = GetGValue(color); BYTE B = GetBValue(color); Label4->Caption = R; Label5->Caption = G; Label6->Caption = B; }
merci beaucoup beaucoup beaucoup c régler
la solution pour ce qui sont intéressés:
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 #include "jpeg.hpp" //ouvrir une image JPG ou autres void __fastcall TForm1::BitBtn1Click(TObject *Sender) { if(OpenPictureDialog1->Execute()) Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName); Graphics::TBitmap *b = new Graphics::TBitmap(); b->Assign(Image1->Picture->Graphic); int w, h; w = b->Width; h = b->Height; Image1->Width = w; Image1->Height = h; Image1->Picture->Assign(b); delete b; } //afficher les propriétés RGB void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { TColor color = Image1->Canvas->Pixels[X][Y]; BYTE B = GetBValue(color); BYTE G = GetGValue(color); BYTE R = GetRValue(color); Label4->Caption = B; Label5->Caption = G; Label6->Caption = R; }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager