salut
Comment je fais cette animation de l'image:?
![]()
salut
Comment je fais cette animation de l'image:?
![]()
le plus simple est de dessiner l'image dans un Bitmap en AlphaBlend pour avoir l'image grisée, puis de remplir autant de pixels que le % de progression avec leur couleur d'origine
c'est un code vite fait, il serait plus performant de copier la ligne partielle d'une part, et le bas de l'image d'autre part par des CopyRect()
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 procedure TForm1.PaintBox1Paint(Sender: TObject); var size: Integer; count: Integer; x, y: Integer; begin with Target.Canvas do begin Brush.Color := clWhite; FillRect(TRect.Create(0, 0, Target.Width, Target.Height)); Draw(0, 0, Source, 64); end; size := Target.Width * Target.Height; count := Size - (ProgressBar1.Position * size) div ProgressBar1.Max; while count < size do begin y := count div Target.Width; x := count - Target.Width * y; Target.Canvas.Pixels[x, y] := Source.Canvas.Pixels[x, y]; Inc(Count); end; PaintBox1.Canvas.Draw(0, 0, Target); end;
dans cet exemple il suffit de cliquer sur la progressbar pour changer l'image
test.zip
Partager