WPF中将Canvas转为位图.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WPF中将Canvas转为位图

WPF中将Canvas转为位图 ????? 在WPF中我们可以将Canvas当成一种画布,将Canvas中的控件当成元素,讲其转成位图文件: 如下效果 ? ???????????????????????? ??????????????????????????????????????????????????????? ?图1.1 ?????? 你可以设置Canvas的宽度、高度和颜色类型,生成任何你想要的图片。实时呈现你设置的样式等效果。 ?????? 包括创建一些特效如阴影等。 ?    WPF提供RenderTargetBitmap类将任何容器控件渲染成一个位图。 ? ??????? 新建一个WPF项目,在页面中创建一个CANVAS,如下:?????? 1????????????Canvas?x:Name=Screen?Width=700?Height=200?Background=#F0CC0000??????????? 2?????????????????TextBlock?Canvas.Left=200?Canvas.Top=50?x:Name=VSSize?text=Canvs?转换为图片/TextBlock??????????????? 3????????????/Canvas ? ????????在CS代码中做处理: ?1?RenderTargetBitmap?bmp?=?new?RenderTargetBitmap(this.Screen.Width,?this.Screen.Height,?96,?96,?PixelFormats.Pbgra32);???? ?2?bmp.Render(this.Screen);????? ?3?string?file?=?@c:\xxx.jpg;????? ?4?string?Extension?=?System.IO.Path.GetExtension(file).ToLower();????? ?5?BitmapEncoder?encoder?=?new?JpegBitmapEncoder();????????????? ?6?encoder.Frames.Add(BitmapFrame.Create(bmp));????? ?7?using?(Stream?stm?=?File.Create(file))???? ?8?{???????? ?9?encoder.Save(stm);???? 10?}???????????? ? ???????? 这样就将CANVAS转换成图1.1的效果; ???????? 如果你对生成的图片有更高的清晰度的要求,你可以设置encoder的QualityLevel属性来改变JPEG的质量值,或者生成质量更高的PNG图片,如? ? 1?encoder?=?new?PngBitmapEncoder();???????????? ? ? ???????? 我们改变下CANVAS的一些属性,将一个名为SCREEN的CANVAS 放在另一个CANVAS中并设置上偏移50,设置如下:? ? 代码 Canvas ?Canvas?Canvas.Top=50?x:Name=Screen?Width=700?Height=200?Background=#F0CC0000??????????? ???????TextBlock?Canvas.Left=200?Canvas.Top=50?x:Name=VSSize?text=Canvs?转换为图片/TextBlock??????????????? ?/Canvas /Canvas ? ?????????? 后台CS代码不变; ?????????? 效果如下: ?????????图片上出现一条黑块,将此图片放入PHOTOSHOP中可看见居上偏移50为一透明块,证明任何属性的偏移对CANVAS的构图都会造成影响。 ? ???????? 那么直接在后台CS文件中建一个CANVAS直接生成位图是否可以?如下: ?1?Canvas?cvs?=?new?Canvas(); ?2?cvs.Width?=?700; ?3?cvs.Height?=?200; ?4?Label?lb?=?new?Label(); ?5?lb.content?=?Canvas?转换为?图片; ?6?Canvas.SetTop(lb,50); ?7?Canvas.Setleft(lb,200); ?8?cvs.child.add(lb); ?9?RenderTargetBitmap?bmp?=?new?RenderTargetBitmap(cvs.Width,?cvs.Height,?96,?96,?PixelFormats.Pbgra32);

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档