绘制图像
您还可以利用 Brush 进行绘制,从而在应用程序中显示图像。利用画笔,您可以利用任意内容(从简单的纯色到复杂的图案和图像集)绘制 UI 对象。若要绘制图像,请使用 ImageBrush。ImageBrush 是一种 TileBrush 类型,用于将其内容定义为位图图像。ImageBrush 显示由其 ImageSource 属性指定的单个图像。您可以控制图像的拉伸、对齐和平铺方式,从而可以防止失真并生成图案和其他效果。下图显示了利用 ImageBrush 可以达到的几种效果。
图像的画笔可以填充形状、控件、文本等
下面的示例演示如何使用 ImageBrush 绘制带图像的按钮的背景。
图像元数据
某些图像文件包含用于描述文件的内容或特征的元数据。例如,大多数数码相机创建的图像中包含用于捕获该图像的照相机的品牌和型号的元数据。每个图像格式处理元数据的方式不同,但 WPF 图像处理提供一种统一的方式来为每个支持的图像格式存储和检索元数据。
对元数据的访问是通过 BitmapSource 对象的 Metadata 属性来进行的。Metadata 返回一个 BitmapMetadata 对象,其中包含该图像所包含的所有元数据。此数据可以位于一个元数据架构中或位于不同方案的组合中。WPF 图像处理 支持以下图像元数据架构:可交换图像文件 (Exif)、tEXt(PNG 文本数据)、图像文件目录 (IFD)、国际新闻通信委员会 (IPTC) 和可扩展元数据平台 (XMP)。
为了简化读取元数据的过程,BitmapMetadata 提供易于访问的若干命名属性(如 Author、Title 和 CameraModel)。许多命名属性还可以用于编写元数据。元数据查询读取器提供对读取元数据的其他支持。GetQuery 方法用于检索元数据查询读取器,这是通过提供字符串查询(如 "/app1/exif/")来实现的。在下面的示例中,GetQuery 用于获取存储在 "/Text/Description" 位置中的文本。
若要编写元数据,会使用到元数据查询编写器。SetQuery 获取查询编写器并设置需要的值。在下面的示例中,SetQuery 用于编写存储在 "/Text/Description" 位置中的文本。
编解码器扩展性
WPF 图像处理的核心功能是用于新图像编解码器的扩展性模型。通过这些非托管的接口,编解码器开发人员可以将编解码器与 WPF 集成,这样 WPF 应用程序就可以自动使用新的图像格式。
说明:
编解码器必须进行数字签名,以便于系统识别。
| 第 1 页:WPF的图像处理 | 第 2 页:图像格式编码 |
| 第 3 页:旋转、转换和裁切图像 | 第 4 页:裁切图像 |
| 第 5 页:绘制图像 |






























