/// <summary> /// MatをBitmapSourceに変換する. /// </summary> /// <param name="src">変換するMat</param> /// <returns>WPFのBitmapSource</returns> #else /// <summary> /// Converts Mat to BitmapSource. /// </summary> /// <param name="src">Input Mat</param> /// <returns>BitmapSource</returns> #endif public static BitmapSource ToBitmapSource(this Mat src) { if (src == null) { throw new ArgumentNullException("src"); } using (Bitmap bitmap = BitmapConverter.ToBitmap(src)) { return(ToBitmapSource(bitmap)); } }
/// <summary> /// IplImageをWriteableBitmapに変換する. 引数はWriteableBitmapのコンストラクタに相当する. /// </summary> /// <param name="src">変換するIplImage</param> /// <returns>WPFのWriteableBitmap</returns> #else /// <summary> /// Converts IplImage to BitmapSource. /// </summary> /// <param name="src">Input IplImage</param> /// <returns>BitmapSource</returns> #endif public static BitmapSource ToBitmapSource(this IplImage src) { if (src == null) { throw new ArgumentNullException("src"); } using (System.Drawing.Bitmap bitmap = BitmapConverter.ToBitmap(src)) { IntPtr hBitmap = bitmap.GetHbitmap(); BitmapSource bs = Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions() ); DeleteObject(hBitmap); return(bs); } }