创建图像
为了呈现图像,您可以使用 Image 或 ImageBrush 对象,
Silverlight图形:图像处理
。下面的示例演示如何创建图像 。XAML
VB
Dim myImage As Image = New Image
myImage.Source = New BitmapImage(New Uri("myPicture.jpg", UriKind.RelativeOrAbsolute))
LayoutRoot.Children.Add(myImage)
在本例中,Source 属性用于指定要显示的图像的位置。可以通过指定绝对 URL(例如, http://contoso.com/myPicture.jpg)来设置 Source,也可以指定相对于应用程序的 XAP 文件的 URL。对于前一示例,您需要将 XAP 文件放置于 myPicture.png 所在的文件夹。
您使用 ImageBrush 来使用图像绘制采用画笔的区域。例如,ImageBrush 可用于 Canvas 或 InkPresenter 的 Background 属性的值。
说明:
Silverlight 并不支持所有图像格式。
拉伸图像
如果您没有设置 Image 的 Width 或 Height 值(如上例所示),则它将使用 Source 指 定的图像的自然尺寸显示。设置 Height 和 Width 将创建一个包含矩形区域,图像将显示在 该区域中。您可以通过使用 Stretch 属性指定图像如何填充此包含区域。Stretch 属性接受 Stretch 枚举定义的下列值:
None:图像不拉伸以适合输出尺寸。
Uniform:图像进行缩放,以适合输出尺寸。但保留该内容的纵横比。这是默认值。
UniformToFill:对图像进行缩放,从而可以完全填充输出区域,但保持其原始纵横比。
Fill:视频进行缩放,以适合输出尺寸。由于内容的高度和宽度是独立缩放的,因此图像 的原始纵横比可能不会保留。也就是说,为了完全填充输出区域,图像可能会失真。
下面的插图显示了不同的 Stretch 设置。
拉伸设置
下面的示例显示一个 Image,它填充 300 x 300 像素的一个输出区域,但保留其原始纵 横比,因为 Stretch 属性设置为 UniformToFill。
XAML
说明:
在只设置一个约束属性时(例如 Height),其他属性(本例中为 Width)将基于自然图 像的纵横比自动计算。由于此行为,设置 Stretch 属性并不更改该行为,除非它设置为 None。
裁切图像
可以通过使用 Clip 属性裁切掉图像输出的某个区域来裁切图像。您将 Clip 属性设置为 Geometry,这意味着可以从图像中裁切掉各种几何形状(例如,椭圆、直线或复杂路径)。 有关创建几何图形的更多信息,请参见几何图形。
下面的示例演示如何将 EllipseGeometry 用作图像的剪辑区域。在此示例中,用 Width 200 和 Height 150 定义了一个 Image 对象。一个 RadiusX 值为 100、RadiusY 值为 75、 Center 值为 100,75 的 EllipseGeometry 设置为图像的 Clip 属性。只有位于椭圆区域内 部的图像部分才会显示。
XAML
下图显示此示例的输出,
电脑资料
《Silverlight图形:图像处理》(https://www.unjs.com)。用于剪辑图像的 EllipseGeometry
说明:
除 Image 外的多种对象均可被剪辑。
说明:
创建裁切效果的另一种方法是通过使用渐变来应用 OpacityMask。在此情况下,因为您使 用的是 Opacity,所以可以在裁切中创建模糊边缘。
应用 OpacityMask
您可以将 OpacityMask 应用于某一图像,以便创建多种与不透明度相关的照片蒙板技术 ,例如虚光照效果,如下图所示。
OpacityMask 创建的虚光照效果的示例
使用图像绘制 (ImageBrush)
您使用 ImageBrush 来使用图像绘制采用画笔的区域。例如,ImageBrush 可用于 Canvas 或 InkPresenter 的 Background 属性的值。有关画笔的更多信息,请参见画笔。
下面的 XAML 示例显示如何将 Foreground 属性设置为 ImageBrush,其图像将用作 TextBlock 呈现文本的填充。
XAML
实战c++中的string系列string的