15. Juli 2009
WPF Image Interop
von Simon Bitschnau | Abgelegt in .NET Framework, C#, WPFSchon oft gesehen in Beispielen zu Image Interop ist folgender Code:
BitmapSource bitmap = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(source.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
Das funktioniert soweit auch hat aber einen entscheidenden Fehler, auf den man schnell kommt, wenn man sich die MSDN Dokumentation anschaut.
Der Handle der von GetHBitmap zurückgeliefert wird, muss nämlich manuell wieder freigegeben werden. Und zwar mit der DeleteObject Methode:
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);
Dieser Text wird durch den Flashinhalt ersetzt.









Kommentar hinzufügen