首页 > 代码库 > WPF Canvas转换为位图 (RenderTargetBitmap)
WPF Canvas转换为位图 (RenderTargetBitmap)
使用 RenderTargetBitmap 的注意事项:
要渲染的Canvas元素要放在Border元素内,并且此Border元素不能设置边框宽度(BorderThickness),不然生成的位图会出现错误。如果需要边框效果,可再加一层Border。
例:
cs:
RenderTargetBitmap bmp = new RenderTargetBitmap((int)canvas.ActualWidth, (int)canvas.ActualHeight, 96, 96, PixelFormats.Pbgra32); bmp.Render(canvas); // string file = @"D:\xxx.jpg"; 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); }
xaml:
<Border BorderBrush="Black" BorderThickness="10" Width="300" Height="300" Grid.Row="1"> <Border> <Canvas x:Name="canvas" Background="White"> <Image Source="96x96-2.jpg" Canvas.Left="96" Canvas.Top="96"></Image> </Canvas> </Border> </Border>
WPF Canvas转换为位图 (RenderTargetBitmap)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。