X-Git-Url: http://git.euphorik.ch/?p=master-thesis.git;a=blobdiff_plain;f=Parasitemia%2FParasitemiaUI%2FBitmapSourceConvert.fs;fp=Parasitemia%2FParasitemiaUI%2FBitmapSourceConvert.fs;h=ea41240ee070eaaf459b32d95688b6459023a4e3;hp=0000000000000000000000000000000000000000;hb=95f9edf71456c8bf89a91850800f66efc2c9d4da;hpb=d247f3a07ca3c7b192d8c2381ea85ba731fcc359 diff --git a/Parasitemia/ParasitemiaUI/BitmapSourceConvert.fs b/Parasitemia/ParasitemiaUI/BitmapSourceConvert.fs new file mode 100644 index 0000000..ea41240 --- /dev/null +++ b/Parasitemia/ParasitemiaUI/BitmapSourceConvert.fs @@ -0,0 +1,30 @@ +namespace ParasitemiaUI + +open System +open System.Runtime.InteropServices +open System.Windows +open System.Windows.Media.Imaging + +open Emgu.CV + +module BitmapSourceConvert = + [] + extern int DeleteObject(IntPtr o); + + let ToBitmapSource (image : Image<'TColor, 'TDepth>) : BitmapSource = + use source = image.ToBitmap () + + let ptr : IntPtr = source.GetHbitmap () + + let bs : BitmapSource = + System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap + ( + ptr, + IntPtr.Zero, + Int32Rect.Empty, + (BitmapSizeOptions.FromEmptyOptions ()) + ) + + DeleteObject ptr |> ignore + + bs