Bonjour à tous!
voici j'ai placé une image sur ma feuille et je voudrais l'animer , faire en sorte qu'elle bouge ou flotte , mais je ne sais pas comment faire.
Merci pour votre aide.
Version imprimable
Bonjour à tous!
voici j'ai placé une image sur ma feuille et je voudrais l'animer , faire en sorte qu'elle bouge ou flotte , mais je ne sais pas comment faire.
Merci pour votre aide.
Peu Précis comme Effet ...
Pour Bouger, suffit de changer Left et Top ...
Pour Flotter, si tu veux donner l'effet d'une vague, faut être bon en manipulation graphique, voir OpenGL pour l'application d'un tel effet à une surface ...
Autre suggestion :
Faire afficher dans l'image une succession de BitMap à intervalles réguliers qui simulent le mouvement (ex: mouvements d'un drapeau flottant au vent) par exemple à partir de BitMaps sélectionnés et convertis à partir d'une caméra numérique ou un appareil photo permettant de photgraphier par rafales.
Reste alors à trouver un bon compromis entre la fréquence de remplacement des BirmMap (pas obligé de faire de l'affichage à 24 img/sec comme au cinéma) et de la taille des BitMaps à réafficher.
... en tout cas c'est plus facile à coder que de faire du morphing animé avec des scanlines (rien que d'y penser me fait dresser les cheveux sur la tête).
Pour le coup de l'Animation, autant mettre les images dans un AVI et les afficher avec un TAnimate ^_^
"TAnimate" : merci. Je viens de découvrir qu'il existe même sur ma version Delphi5.
Code:
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 var lo:tbitmap; i,j:integer; kl:longint; rr,gg,bb:byte; res:byte; begin Screen.Cursor := crHourglass; lo:=tbitmap.create; lo.Width:=Image1.Width; lo.height:=Image1.height; for i:=0 to Image1.Width+1 do begin for j:=0 to Image1.height+1 do begin kl:=ColorToRGB(Image1.Canvas.Pixels[i,j]); rr:=byte(kl); gg:=byte(kl shr 8); bb:=byte(kl shr 8); res:=(rr+gg+bb) div 3; lo.Canvas.Pixels[i,j]:=rgb(res,res,res); end; end; Image1.Canvas.Draw(0,0,lo); Screen.Cursor := crDefault; lo.free; end;