myimg.Picture.Bitmap
wird nicht freigegeben.
myimg.Picture.Bitmap.Free();
kann man nicht aufrufen. Korrekt weist man Bilder mit
myimg.Picture.Assign(Bild);
zu, da wird das alte Bild gelöscht. Die Verwendung von TImage ist hier sowieso komplett fehl am Platze, ganz zu schweigen vom fehlenden try..finally. Da war ich jetzt aber zu faul für, das auch noch zu ergänzen.
Delphi-Quellcode:
Function SaveShotToStream(PIC: TBitmap): AnsiString;
var
myjpg: TJPEGImage;
mybmp: Graphics.TBitmap;
mm: TMemoryStream;
begin
mm := TMemoryStream.Create;
myjpg := TJPEGImage.Create;
myjpg.CompressionQuality := 50;
myjpg.Compress;
mybmp := GetScreenShot;
myjpg.Assign(mybmp);
mybmp.Free;
myjpg.SaveToStream(mm);
myImg.Free;
myjpg.Free;
mm.Free;
end;