WPF图形图像相关类

BitmapMetadata类:

继承自抽象类ImageMetadata,包含图像的原数据信息,如相机型号、图像修改程序名称、拍照日期、拍照地点等。ImageSoure类包含ImageMetadata类型的Metadata属性。由于ImageMetadata是抽像类,所以提取信息时用它的子类BitmapMetadata。如:

BitmapMetadata metaData=img.Source.Metadata as BitmapMetadata;

 MessageBox.Show(metaData.CameraModel.ToString());

ImageSource类:

表示具有宽度、高度和图像原数据的对象。该类为抽象类,派生出DrawingImage和BitmapSource类型。

DrawingImage的内容是一个Drawing,用于在Image元素中驻留图画。

BitmapSource也是抽象类,其内容是位图,具有Dpi、像素高宽、像素格式等属性。

BitmapImage类:

BitmapImage具体实现BitmapSource类,主要目的是支持可扩展应用程序标记语言 (XAML)语法并引入了其他属性,比如UriSource,和从Uri创建。

RenderTargetBitmap类:

另一个继承自BitmapSource的类,主要目的是将Viusal对像转换为位图。

Drawing类: 

表示2D图画的抽象类,它包含了显示矢量图形或位图所需要的信息。派生GeometryDrawingGlyphRunDrawingImageDrawingVideoDrawingDrawingGroup

Drawing对象是轻量级对象,它不支持布局、输入和焦点,用它显示几何形状、图像、文本和媒体,具有性能优势。

继承自Drawing的类不是元素,不能放置到用户界面中。为了显示Drawing,需要DrawingImage、DrawingBrush或DrawingVisual。 DrawingImage前面已说。DrawingBrush的父类是Brush,用它封装Drawing后,就可以用来绘制任何表面。DrawingVisual是低级的可视化对象,不具有真正的元素开销。

Visual类:

Visual对象是WPF核心对象,其主要作用是提供呈现支持。用户界面控件(UIElement)、Visual对像集合(ContainerVisual,其最重要的子类为DrawingVisual)都派生自Visual类。Visual有以下能力:输出显示、坐标变换、区域剪裁、命中测试、边框计算。

DrawingVisual类:

DrawingVisual是一种可视对象,可用于在屏幕上呈现矢量图形,它显示的内容由系统持久化。

为了使用DrawingVisual对象,您需要为对象创建一个宿主容器。宿主容器对象必须派生自FrameworkElement类,该类提供了DrawingVisual类不支持的布局和事件处理支持。宿主容器对象不显示任何可视属性,因为它的主要目的是包含子对象。

Brush类:

Brush是抽像类,用于绘制图形对象的对象。派生自Brush 的类描述如何绘制区域。

Brush类继承自Freezable,支持更改通知,如果改变了画刷,任何使用画刷的元素都会重绘自身。

Brush支持Opacity。

Brush派生类型:SolidColorBrush(单一颜色)、LinearGradientBrush(渐变)、RadialGradientBrush(径向渐变)、ImageBrush(可拉伸、缩放或平铺的图像)、DrawingBrush(使用Drwing对象)、VisualBrush(使用Visual对象)、BitmapCacheBrush(从Visual对像缓存的内容绘制区域)

DrawingBrush类:

DrawingBrush继承自TileBrush,很适合平铺,注意改变其Stretch属性,调整其Viewport大小!

--------------------------------------------------

顺便提下Image、Bitmap和Graphics

System.Drawing空间有Image 、Bitmap和Graphics,是winform中常用的类。

Image代表图像,是个抽象类。
Bitmap派生于Image,代表具体的位图(不是矢量图),bmp、jpg、gif、png、tif等都是位图的格式。

Graphics简单理解就是画板,提供绘画工具,如笔刷、颜料。

原文地址:https://www.cnblogs.com/TianPing/p/10390009.html