Pas de soucis!
Ce fût intéressant en plus !
Pas de soucis!
Ce fût intéressant en plus !
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
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 :
Que veux-tu dire par afficher un X ? Tu veux dire mettre une croix à sur le TImage à l'emplacement des coordonnées ?C'est possible d'afficher un X dans la coordonée X,Y précisé
oui exactement caQue veux-tu dire par afficher un X ? Tu veux dire mettre une croix à sur le TImage à l'emplacement des coordonnées ?
je peut faire cela en dehors du timage mais dans le timage j'ai pas pus
merci
Re,
Voici la nouvelle fonction :
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...
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;
merci j'ai fais cela :
le beug c'est : pas assez de parametres originaux dans :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part couleurSelectionnee:=donnercouleur(Image1,50,50);
Evidemment! J'aurai pensé que tu serais capable de voir que j'avais rajouté un paramètre ...
Il faut mettre :
Avec true, ça affiche le point, sinon, avec false, ça ne l'affiche pas!
Code : Sélectionner tout - Visualiser dans une fenêtre à part couleurSelectionnee:=donnercouleur(Image1,50,50,true);
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 ?
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;
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'
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 ...
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