2009-11-21 7 views

답변

4

대답을 도용하지 않고 Johannes가 참조한 CodeProject 기사에서 제공하는 코드를 사용하여 GDI 비트 맵을 만듭니다. 그런 다음 WPF에서 사용하기 위해 BitmapSource는로 변환하려면 다음 코드를 사용할 수 있습니다

public static BitmapSource ToBitmapSource(this System.Drawing.Bitmap source) 
    { 
     var hBitmap = source.GetHbitmap(); 

     try 
     { 
      return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
       hBitmap, 
       IntPtr.Zero, 
       Int32Rect.Empty, 
       BitmapSizeOptions.FromEmptyOptions()); 
     } 
     catch (Win32Exception) 
     { 
      return null; 
     } 
     finally 
     { 
      NativeMethods.DeleteObject(hBitmap); 
     } 
    } 

NativeMethods.DeleteObject의 코드는()입니다 :

[DllImport("gdi32.dll")] 
    [return: MarshalAs(UnmanagedType.Bool)] 
    internal static extern bool DeleteObject(IntPtr hObject); 
+0

자, 가서 도난 당했어. 요하네스가 아니야. 너 한테 화났어. 네가 한 짓을 보아라. :) 농담, 고마워 코드;) – luvieere

+0

하하, probs : D 조 –

4

여기에 CodeProject article이 있습니다.

화면 캡처가 WPF 관련 항목이 아니기 때문에 솔루션에는 WPF도 포함되어 있지 않습니다.

+0

A는 내가 '그 알고있다 WPF 솔루션에 관심이있어 BitmapImage 등이 될 수 있습니다. – luvieere

+0

http://blogs.msdn.com/rwlodarc/archive/2007/01/03/wpf-bitmapsource-and-gdi-bitmap-interop.aspx – Joey