COULEUR D'UN PIXEL

Signaler
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
-
Messages postés
19
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
29 juillet 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28414-couleur-d-un-pixel

Messages postés
19
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
29 juillet 2009

pourrais tu m'aider ?
Voici mon code, mais mon tramage ressort en noir et rouge au lieux de nori et blanc et j'ai de nombreuses imperfection dans l'image... plein de petit pixel rouge ( qui devraient être blanc) apparaissent autour de mon image...
Merci d'avance.

procedure TForm1.BiChromieClick(Sender: TObject);
Const
seuil=128;
Var
x,y:word;
begin

for x:=0 to image1.picture.width do
begin

for y:=0 to image1.picture.Height do
begin
if image1.Picture.Bitmap.Canvas.Pixels [x,y]>seuil then
image1.Picture.Bitmap.Canvas.Pixels [x,y]:=255 else image1.Picture.Bitmap.Canvas.Pixels [x,y]:=0;
memo1.Clear;
end;
end;
end;
Messages postés
16
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
29 décembre 2004

On n'arrête pas le progrès :-D !
Messages postés
16
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
29 décembre 2004

Et oui, ce n'est qu'une affaire de handle ;-) (on pourrait penser de prime abord que le code fait une "copie" du canvas à un instant donné alors qu'en réalité il récupère vraiment le canvas puisqu'il lui attribue son handle).
En effet, j'ai oublié de virer "rect0" :-/ (qui servait dans la première version du code).
Bien vu pour la fonction ColorToString (je ne connaissais pas) ;-). De plus "coult" ne servait effectivement à rien, même avant l'utilisation de ColorToString (j'avais fait ce code quand je débutais en Delphi [NB : je suis toujours débutant, mais un peu moins :-D], et en le relisant avant de le poster ici je n'ai pas fais gaffe :-/ ).
Enfin, le code fonctionne parfaitement sans "coulh", mais cette fois je n'ai pas compris pourquoi (à quoi sert dès lors la fonction ColorToRGB ?)...
En tout cas merci beaucoup pour cette intervention et désolé de t'avoir paru agressif ;-).
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
re moi :)
bon j'ai compris apres m'etre plongé dedans, merci le handle :D
euh le rect0 ne sert a rien je pense, ni meme coult et coulh, regarde :

coul := CanvasB.Pixels[Mouse.CursorPos.X,Mouse.CursorPos.Y];
Shape1.Brush.Color := coul;
Label1.Caption := 'TColor : ' + ColorToString(coul);
Label2.Caption := 'RGB : ' + IntToStr(GetRValue(coul)) + ',' + IntToStr(GetGValue(coul)) + ',' + IntToStr(GetBValue(coul));
Label3.Caption := 'HTML : #' + IntToHex(GetRValue(coul),2) + IntToHex(GetGValue(coul),2) + IntToHex(GetBValue(coul),2);

suffit :) et puis comme ça, lors d'un passage sur une couleur "pure" cimme le rouge, bleu, blanc, noir, le TColot affiche "clRed" "clBlue" etc :) beau non ?

9/10 pour ce code tres efficace et tres court (surtout avec coulh et coult en moins :D)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
???????
"faire la malin" ? abusé ! je me demandais si ça le ferais, n'ayant pas la possibilité de le tester sous delphi ici (au taf)
donc euh explique moi comment ça se fait car je ne vois pas de refresh du canvas !
tu te sens agressé ?? c pas mon but ! au contraire ... je trouves tes sources superbe (moins celle ci :p) :)
allez explike moi , moi ki n'ai pas compris comment ça marche sans le refresh :p
merciiiii
Afficher les 9 commentaires