Сохраните System.Windows.Media.Brush как файл образа на диск - PullRequest
0 голосов
/ 23 октября 2018

У меня есть D3DImage _di, который используется для рисования фона границы Wpf в виде кисти.Изображение отображается нормально, но я хочу сохранить файл Brush to png на диске, даже если Brush не отображается в представлении.

Я попытался, как показано ниже, сохранить его на диск, но получил только черное изображение.:

            _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 голосов
/ 25 октября 2018

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

...