我有一个a的实例,System.Drawing.Bitmap并希望以一种形式将它提供给我的WPF应用程序System.Windows.Media.Imaging.BitmapImage.
对此最好的方法是什么?
我有一个System.Drawing.Image的实例.
如何在我的WPF应用程序中显示这个?
我尝试过,img.Source但这不起作用.
我需要Image在30Hz处在组件上绘制图像.我用这个代码:
public MainWindow()
{
InitializeComponent();
Messenger.Default.Register<Bitmap>(this, (bmp) =>
{
ImageTarget.Dispatcher.BeginInvoke((Action)(() =>
{
var hBitmap = bmp.GetHbitmap();
var drawable = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
hBitmap,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
DeleteObject(hBitmap);
ImageTarget.Source = drawable;
}));
});
}
Run Code Online (Sandbox Code Playgroud)
问题是,使用此代码,我的CPU使用率约为80%,如果没有转换,则大约为6%.
那么为什么转换位图这么久呢?
是否有更快的方法(使用不安全的代码)?