GetRvalue la valeur de retoure

[Résolu]
Signaler
Messages postés
15
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
22 novembre 2009
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
bonjour tout le monde

j'ai une petit question a propos de :

getRvalue(colortoRGB(canvas.Pixels[60,70]));

la valeur de R que l'instruction me retourne n'est pas entre 0-255

voila comment je lé su

getRvalue(colortoRGB(canvas.Pixels[60,70]));
label1.caption:= inttostr (R1);

j'ai la valeur R=4394916

comment je peux avoir une valeur entre 0 et 255

merci bonne journée

8 réponses

Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Si tu as fait comme ci-dessus, cela ne peut évidemment pas marcher !
GetRValue est une fonction, donc il faut stocker son result dans une variable.

R1:= getRvalue(colortoRGB(canvas.Pixels[60,70]));

A +
Thierry
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
Je pense que c'est ce qu'il a déjà fait, me trompe je ?
Messages postés
15
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
22 novembre 2009

oui oui biensur ThWilliam c'est ce que j'ai fait sinon j'aurais pas u la valeur fausse, c'était juste un exemple

mais j'ai u une valeur bizarre et je ne sais pas prk

voila ce que j'ai fait

R1:=getRvalue(colortoRGB(canvas.Pixels[60,70]));
label1.caption:= inttostr (R1);

et le résultat sur la label1 est 4394916
Messages postés
15
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
22 novembre 2009

salut !

j'ai fait une grosse bêtise ! j'ai fait

getRvalue(colortoRGB(canvas.Pixels[60,70]));

au lieu de:

R1:= getRvalue(colortoRGB(canvas.Pixels[60,70])); !!!!!!

oui vous me lavez dit et j'ai vérifié 3 fois mais je regardais une autre ligne !!

je suis vraiment désoler de vous avoir fait perdre un peu de temps , mais bon c'était pas pour rien je sais qu'il veaux mieux utiliser byte! ça suffit !

merci et encore dsl, bonne fin de journée
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
erreur avouée...erreur pardonnée
Messages postés
15
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
22 novembre 2009

lol merci
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
ho
mon
dieu
.
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
pfff

color := Canvas.Pixels[x,y];
R := byte(color);
G := byte(color shr 8);
B := byte(color shr 16);


et encore mieux :

type
  RGBRec = packed record case integer of
    0: (value: integer);
    1: (R,G,B,A: byte);
  end;

...
var
  RGB : RGBRec;
begin
  RGB.Value := Canvas.Pixels[x,y];
  ... RGB.R
  ... RGB.G
  ... RGB.B
end;