locomarco
Commander
- Registriert
- Aug. 2009
- Beiträge
- 2.446
Um ein Bitmap zu einem BitmapSource umzuwandeln hab ich folgenden Code:
Sobald hBitmap = bmp.GetHbitmap(); im Code steht, steigt der Speicherverbrauch von meinem Programm pro Sekunde um 2-5mb.
Nach ca. 5 Minuten liegt der verbrauch dann bei ~1,3gb und GDI+ verabschiedet sich mit einer ExternalException: "Allgemeiner Fehler in GDI+."
Habs schon mit hBitmap = IntPtr.Zero, GC.WaitForPendingFinalizers() und GC.Collect() probiert. Hilft leider nichts.
Code:
IntPtr hBitmap;
Bitmap bmp;
BitmapSource bmpSrc;
...
private void blabla()
{
hBitmap = bmp.GetHbitmap();
bmpSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
}
Sobald hBitmap = bmp.GetHbitmap(); im Code steht, steigt der Speicherverbrauch von meinem Programm pro Sekunde um 2-5mb.
Nach ca. 5 Minuten liegt der verbrauch dann bei ~1,3gb und GDI+ verabschiedet sich mit einer ExternalException: "Allgemeiner Fehler in GDI+."
Habs schon mit hBitmap = IntPtr.Zero, GC.WaitForPendingFinalizers() und GC.Collect() probiert. Hilft leider nichts.