网站大量收购独家精品文档,联系QQ:2885784924

WPF中的图像处理简介.doc

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

 HYPERLINK /TianFang/archive/2009/10/18/1585450.html WPF中的图像处理简介  HYPERLINK /TianFang/archive/2009/10/18/1585450.html /TianFang/archive/2009/10/18/1585450.html 和Winform中的GDI+相比,WPF提供了一组新的API用于显示和编辑图像。新API特点如下: 适用于新的或专用图像格式的扩展性模型。 对包括位图 (BMP)、联合图像专家组 (JPEG)、可移植网络图形 (PNG)、标记图像文件格式 (TIFF)、Microsoft Windows Media 照片、图形交换格式 (GIF) 和图标 (.ico) 在内的本机图像格式增强了性能和安全性。 高位深图像数据的保留最多 32 位/通道。 非破坏性图像缩放、裁切和旋转。 简化的颜色管理 支持文件内的专用元数据。 托管组件利用非托管基础结构提供图像与其他 WPF 功能(如用户界面 (UI)、动画和图形)的无缝集成。托管组件还可以从 Windows Presentation Foundation (WPF) 图像处???编解码器扩展性模型获益,利用该模型可以实现自动识别 WPF 中的新图像格式。 大部分托管的 WPF 图像处理 API 驻留在 System.Windows.Media.Imaging 命名空间中,不过,几个重要的类型(如 ImageBrush 和 ImageDrawing)都驻留在 System.Windows.Media 命名空间,Image 驻留在 System.Windows.Controls 命名空间。 下面我通过一个简单的示例演示一下新的API的使用方法: 图像编码格式转换: var?imageStreamSource =?File.OpenRead(@r:\1\24.bmp);? var?decoder =?BitmapDecoder.Create(imageStreamSource,?BitmapCreateOptions.PreservePixelFormat,?BitmapCacheOption.Default);? var?bitmapFrame = decoder.Frames[0]; //在界面上显示图片? //image1.Source = bitmapFrame; var?encoder =?new?JpegBitmapEncoder();? encoder.Frames.Add(bitmapFrame);? encoder.Save(File.Create(@r:\1\3.jpg)); 这个功能非常简单,就是把一个bmp格式的图片转换为了一个jpg格式的图片。这个示例也显示了WPF的图像处理的基本方式: 从解码器(xxxDecoder)中获取图像信息? 创建解码器后,图像信息就保存在Frames(虽然大部分图像(jpg,bmp,png等)只有一帧,但GIF,ico等图像有多帧)属性中了。 用编码器(xxxEncoder)保持图像信息? 相应的,编码时只要创建编码器,并设置相应的帧即可。 图像处理: 常用的图像处理包括缩放、裁切和旋转等,如下是一个将图像旋转90度的例子。 var?imageStreamSource =?File.OpenRead(@r:\1\24.bmp);? var?decoder =?BitmapDecoder.Create(imageStreamSource,?BitmapCreateOptions.PreservePixelFormat,?BitmapCacheOption.Default);? var?bitmapFrame = decoder.Frames[0];?? TransformedBitmap?myRotatedBitmapSource =?new?TransformedBitmap();? myRotatedBitmapSource.BeginInit();? myRotatedBitmapSource.Source = bitmapFrame;?? //?旋转90度? myRotatedBitmapSource.Transform =?new?RotateTransform(90);? myRotatedBitmapSource.EndInit();? //旋转 var?rotate =?new?RotateTransform(90); var?rotatedBitMap =?new?TransformedBitmap(bitmapFrame, rotate); image1.Source = rotatedBitMap;

文档评论(0)

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

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

1亿VIP精品文档

相关文档