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图画的抽象类,它包含了显示矢量图形或位图所需要的信息。派生GeometryDrawing、GlyphRunDrawing、ImageDrawing、VideoDrawing、DrawingGroup。
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简单理解就是画板,提供绘画工具,如笔刷、颜料。