将System.Windows.Media.Brush作为图像文件保存到磁盘

时间:2018-10-23 13:51:07

标签: wpf d3dimage

我有D3DImage _di,用于以Brush形式绘制Wpf Border背景。 图像呈现得很好,但是即使视图上未显示画笔,我也希望将画笔保存到磁盘上的png文件中。

我尝试如下将其保存到磁盘,但是我得到的只是黑色图像:

            _receivedBrush =(Brush)new ImageBrush((ImageSource)_di)            
            RenderTargetBitmap bmpCopied = new RenderTargetBitmap(350, 174, 96, 96, PixelFormats.Default);
            DrawingVisual dv = new DrawingVisual();
            using (DrawingContext dc = dv.RenderOpen())
            {               
                dc.DrawRectangle(_receivedBrush, null, new Rect(new Point(), new Size(350, 174)));
            }
            bmpCopied.Render(dv);
            MemoryStream mse = new MemoryStream();
            BmpBitmapEncoder mem = new BmpBitmapEncoder();
            mem.Frames.Add(BitmapFrame.Create(bmpCopied));
            mem.Save(mse);
            File.WriteAllBytes(@"g:\brush.png", mse.ToArray());
            mse.Close();

预先感谢

1 个答案:

答案 0 :(得分:-1)

尝试更改为PngBitmapEncoder或将文件扩展名更改为bmp。

相关问题