Halo sur une image

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 375 fois - Téléchargée 51 fois

Contenu du snippet

Cette procédure permet de créer un halo de lumière de centre le point de coordonnées X et Y et de diamètre D sur le bitmap Bmp.

Exemple d'appel :
CreerHalo(25, 25, 1000, MonBitmap);

Ce code nécessite la déclaration préalable des types suivants :
TRGBArray = ARRAY[0..0] OF TRGBTriple;
pRGBArray = ^TRGBArray;

Source / Exemple :


procedure CreerHalo(X, Y, D : Integer; Bmp : TBitmap);
var
  I, J, adding : Integer;
  P : pRGBArray;
begin
  D := D div 2;
  for j := max(0, Y-D) to min(Y+D, bmp.Height-1) do begin
    P := bmp.ScanLine[j];
    for i := max(0, X-D) to min(X+D, bmp.Width-1) do begin
      adding := 255 - min(trunc(255*(sqrt(sqr(i-X)+sqr(j-Y))/D)),255);
      P[i].rgbtRed := min(255, P[i].rgbtRed + adding);
      P[i].rgbtGreen := min(255, P[i].rgbtGreen + adding);
      P[i].rgbtBlue := min(255, P[i].rgbtBlue + adding);
    end;
  end;
end;

A voir également

Ajouter un commentaire

Commentaires

cs_BLG
Messages postés
16
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
29 décembre 2004

Bonsoir,
Je ne sais pas d'où vient votre problème... La source a été conçue sous Delphi 6/7. Je crois qu'elle était encore tout à fait compatible Delphi 2005. Depuis j'ai arrêté de faire du Delphi, et peut-être que la propriété TBitmap.Scanline a disparu !? Vous pouvez toujours consulter la documentation de l'objet TBitmap. J'essayerai de regarder ça de mon côté quand j'aurai un peu de temps.
cavalier2400
Messages postés
120
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
1 décembre 2010
1
Bsr, j'ai ajouté dans le projet une image bmp, au nom de bmp, j'ai ajouté la librairie math, il ne trouve pas la propriété bmp.scanline.
Merci,
417
Messages postés
3
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
4 juillet 2008

C VRAIMEN ALLO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.