canvas教程

WPF技巧-Canvas转为位图(2)

字号+ 作者:H5之家 来源:H5之家 2016-05-23 11:01 我要评论( )

以此为基础使用DrawingContext对象将Canvas及其Child中的对象在DrawingVisual 虚画布上重新进行构图,然后Render DrawingVisual 就可以生成一张位图了。 示例: Canvas cvs = new Canvas();cvs.Width = 700 ;cvs.He

           以此为基础使用DrawingContext对象将Canvas及其Child中的对象在DrawingVisual 虚画布上重新进行构图,然后Render DrawingVisual 就可以生成一张位图了。

           示例:

Canvas cvs = new Canvas(); cvs.Width = 700; cvs.Height = 200; Label lb = new Label(); lb.content = ; Canvas.SetTop(lb,50); Canvas.Setleft(lb,200); cvs.child.add(lb); DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); //构造一个矩形 Rect rect = new Rect(new System.Windows.Point(0, 0), new System.Windows.Point(cvs.ActualWidth, cvs.ActualHeight)); //画一个矩形 drawingContext.DrawRectangle(cvs.Background, new System.Windows.Media.Pen(), rect); //画文字 drawingContext.DrawText(new FormattedText(), new System.Windows.Point(Canvas.GetLeft(lb), Canvas.GetTop(lb))); drawingContext.Close(); RenderTargetBitmap bmp = new RenderTargetBitmap(cvs.Width, cvs.Height, 96, 96, PixelFormats.Pbgra32); //Render DrawingVisual bmp.Render(drawingVisual); ; string Extension = System.IO.Path.GetExtension(file).ToLower(); BitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bmp)); using (Stream stm = File.Create(file)) { encoder.Save(stm); }

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • canvas的神奇用法 javascript技巧笔记 CFEI.NET

    canvas的神奇用法 javascript技巧笔记 CFEI.NET

    2017-04-30 12:00

  •  canvas 魔兽技巧冷却效果

    canvas 魔兽技巧冷却效果

    2017-04-28 12:00

  • 使用CamanJS在Web页面上处理图像的技巧【站长博客网】

    使用CamanJS在Web页面上处理图像的技巧【站长博客网】

    2017-04-13 17:02

  • Android开发基本常识及技巧

    Android开发基本常识及技巧

    2017-04-13 16:02

网友点评