Conversão rápida de Bitmap para BitmapSource wpf
Eu preciso desenhar uma imagem noImage
componente em 30Hz. Eu uso este código:
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;
}));
});
}
O problema é que, com esse código, o uso da minha CPU é de cerca de 80% e, sem a conversão, é de cerca de 6%.
Então, por que a conversão de bitmap é tão longa?
Existe método mais rápido (com código não seguro)?