I've made the changes you've shown me but I'm still leaking memory.
Here is a snippit of code form my app - this is running at 30fps and I
update whenever I receive a new frame from my Video Camera
using( System.Drawing.Bitmap bmp = IMGManager.MainBitmap )
{
if (vidMain.Fill == null)
{
vidMain.Fill = new
ImageBrush(System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(),
IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()));
}
else
{
ImageBrush bmpSrc = vidMain.Fill as ImageBrush;
BitmapSource bsrc = bmpSrc.ImageSource as BitmapSource;
bsrc = null; //no dispose method.. how do i clean up?
bmpSrc.ImageSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(),
IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
}
I see a post on the MSDN forums quoting a simmilar issue - Our issue is
there is no visible way of manually disposing of the interopbitmapsouce
http://forums.microsoft.com/MSDN/Sho...23409&SiteID=1 robertwl@nospam.microsoft.com wrote:
> You are likely leaking HBITMAPs. Are you doing something like this:
>
> BitmapSource bmpSrc = null;
>
> using(System.Drawing.Bitmap bmp = ...)
> {
> bmpSrc = System.Windows.Interop.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(),...);
> }
>
> ?
>
> If not, then you're leaking HBITMAPs from the System.Drawing.Bitmap. Those need to be disposed after using them.
>
> -----Original Message-----
> From: King Adrock
> Posted At: Monday, July 24, 2006 4:31 PM
> Posted To: microsoft.public.windows.developer.winfx.avalon
> Conversation: BitmapSource Disposal/cleanup
> Subject: BitmapSource Disposal/cleanup
>
>
> I have a dispatchtimer pulling System.Drawing.Bitmap Images from my
> webcam and I am displaying them on my WPF UI. I am using a
> BitmapSource created by CreateBitmapSourceFromHBitmap using the
> .GetHbitmap() method from my Bitmap object.
>
> I am getting some serious memory leaks - besides setting my ImageSource
> to null before assinging a new BitmapSource to it, is there anyway I
> can dispose of the object?