быстрое преобразование Bitmap в BitmapSource wpf
Мне нужно нарисовать изображение наImage
компонент на 30 Гц. Я использую этот код:
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;
}));
});
}
Проблема в том, что с этим кодом загрузка моего процессора составляет около 80%, а без преобразования - около 6%.
Так почему же преобразование растрового изображения так долго?
Есть ли более быстрый метод (с небезопасным кодом)?