C#绘制窗口比绘制图形更快

时间:2013-07-20 16:22:25

标签: c# wpf image video

我有一个WPF窗口,上面有图像。我想快速更改图像,就像我正在播放视频一样。假设我将所有数据都存储在内存中,那么在窗口上绘制的方法比以下更快:

public void updateCanvas(byte[] imageData, RECT bounds)
    {
        TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap));
        Bitmap bitmap = (Bitmap)tc.ConvertFrom(imageData);

        Graphics g = Graphics.FromImage(canvas);
        g.DrawImageUnscaled(bitmap, bounds.left, bounds.top);
        this.Image.Source = Imaging.CreateBitmapSourceFromHBitmap(canvas.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
        this.Image.InvalidateVisual();
    }

有没有办法只存储指向渲染字节数据的指针并进行字节复制?或者更快的方式在窗口上绘图(比如DirectX)?

生成数据,因此我不能只播放视频文件。

谢谢!

0 个答案:

没有答案