Сохраните System.Windows.Media.Brush как файл изображения на диск

У меня есть D3DImage _di, который используется для рисования фона 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();

Заранее спасибо,


person adi sba    schedule 23.10.2018    source источник


Ответы (1)


Попробуйте перейти на PngBitmapEncoder или измените расширение файла на bmp.

person Paul Pervinkler    schedule 24.10.2018