Bonjour à toutes et à tous,

Petit problème que j'ai déjà rencontré souvent sans explication.

J'ai un composant TlisBox (listeimg), je charge 5 fichiers Bmp ou Jpg.

Je crée ma vidéo en fichier AVI et à la lecture, j'obtiens 4 images, la dernière semble perdue.

Peux importe le nombre d'images, la dernière n'est pas visible dans l'avi.

Voici mon code :

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
procedure TForm1.BenregistrerClick(Sender: TObject);
var
x,y:integer;
Filename : String;
begin
 
avirecorder1.FPS:=fps.Value;
avirecorder1.Width:=longueur.Value;
avirecorder1.Height:=largeur.Value;
 
 
  AVIRecorder1.Filename := sd1.filename;
  FileName := ExtractFileName(sd1.filename);
 
if avirecorder1.CreateAVIFile(0) then
begin
 
p1.Maxvalue:=listeimg.Count -1; //Ma jauge
 
bmp.Width:=longueur.Value;
bmp.Height:=largeur.Value;
 
for x:= 0 to listeimg.Count -1 do begin
 
p1.Progress:=x;
 
 if Uppercase(ExtractFileExt(listeimg.Items.Strings[x]))='.JPG' then
 begin
 jpg.LoadFromFile(listeimg.Items.Strings[x]); 
 jpg.PixelFormat:=jf24Bit;          
 image1.Picture.Bitmap.Assign(jpg); 
 avirecorder1.AddAVIFrame(image1.Picture.Bitmap);
 
 end;
 
 if Uppercase(ExtractFileExt(listeimg.Items.Strings[x]))='.BMP' then
 begin
bmp.LoadFromFile(listeimg.Items.Strings[x]);
bmp.Canvas.StretchDraw(rect(0,0,longueur.Value,largeur.Value),bmp);
avirecorder1.AddAVIFrame(bmp);
 
end;
 
end;
avirecorder1.CloseAVIFile();
 
p1.Progress:=0;
 
end;
end;
Si quelqu'un avait une idée, merci d'avance.

@+,

Cincap