Hallo zusammen,
In meinem Programm wird ein MJpeg-Stream ausgelesen und jedes einzelne Bild hintereinander in ein Bitmap kopiert. Nach etwa 3 Stunden Laufzeit bekomme ich nur noch EOutOfResources-Exceptions.
So sieht die Funktion aus, die meine Bitmaps füttert:
Delphi-Quellcode:
procedure TMJPEGThread.GenerateBitmap;
var
JPEGImage: TJPEGImage;
begin
JPEGImage := TJPEGImage.Create;
try
JPEGImage.LoadFromStream(FAktImg);
JPEGImage.Performance := jpBestSpeed;
FBitmap.Assign(JPEGImage);
ImgReady(FBitmap);
finally
JPEGImage.Free
end;
end;
In der Zeile mit dem Assign meldet mir MemProof
Zitat:
60463 CreateDIBSection(1023481475,...,0,03E10000,0,0) Bitmap 9E051863 0 404 CreateDIBSection gdi32.dll
CreateDIBSection creates a device-independent bitmap that applications can write to directly.
The returned bitmap
handle must be freed with DeleteObject when no longer needed.
Muss ich also vor dem Assign den alten Inhalt des Bitmaps freigeben?
Ich hab versucht FBitmap.FreeImage aufzurufen, bevor das neue Bild zugewiesen wird, dass ändert aber nix an den Meldungen von MemProof.
Was mach ich falsch?
grüße, daniel
[EDIT]Hatte nur die hälfte von der Memproof-Meldung kopiert.[/EDIT]