簡體   English   中英

如何將畫布上繪制的橢圓保存為圖像-Windows RT

[英]How to save drawn ellipse over canvas as an image - Windows RT

我已經在畫布上繪制了橢圓,現在如何將其另存為圖像。 我知道您不能直接將畫布另存為圖像,也不能截圖。 我正在使用C#/ xaml。 下面是我在畫布上繪制橢圓的代碼。

private void canvasDraw_PointerMoved(object sender, PointerRoutedEventArgs e)
    {
        if (drawing)
        {
            PointerPoint current = e.GetCurrentPoint((UIElement)sender);
           // Line line = new Line() { X1 = start.Position.X, Y1 = start.Position.Y, X2 = current.Position.X, Y2 = current.Position.Y };
            //line.Stroke = new SolidColorBrush(Colors.Black);
            Ellipse circle = new Ellipse();
            circle.SetValue(Canvas.LeftProperty, current.Position.X);
            circle.SetValue(Canvas.TopProperty, current.Position.Y);
            circle.Height = 20;
            circle.Width = 20;
            circle.Fill = currentBrush;
            circle.Opacity = 0.7;
            circle.SetValue(Canvas.ZIndexProperty,1);
            canvasDraw.Children.Add(circle);

        }
    }

編輯:我可以使用InkManager保存圖像。 我將每個橢圓存儲在inkmanager中,並調用SaveAsync方法,但是最后一個問題是圖像為黑色,例如,如果我繪制紅色橢圓,則保存的圖像為黑色橢圓。

閱讀此示例http://blogs.msdn.com/b/swick/archive/2007/12/02/rendering-ink-and-image-to-a-bitmap-using-wpf.aspx

來自站點的代碼摘錄:

// render InkCanvas' visual tree to the RenderTargetBitmap
RenderTargetBitmap targetBitmap =
    new RenderTargetBitmap((int)inkCanvas1.ActualWidth,
                           (int)inkCanvas1.ActualHeight,
                           96d, 96d,
                           PixelFormats.Default);
targetBitmap.Render(inkCanvas1);

// add the RenderTargetBitmap to a Bitmapencoder
BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(targetBitmap));

// save file to disk
FileStream fs = File.Open(fileName, FileMode.OpenOrCreate);
encoder.Save(fs);

RenderTargetBitmap ,在Windows商店應用目標8.0中不可用

Windows 8.1 API包括新的RenderTargetBitmap類,該類允許使用其RenderAsync方法呈現為位圖。 您現在可以使用此方法鏈接,盡管它不適用於我需要的MediaElement :(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM