Silverlight图形:图像处理 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

创建图像

为了呈现图像,您可以使用 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


     Width="200" Height="150">
  
   
  

 

下图显示此示例的输出,

电脑资料

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的

  • poj1149 PIGS -电脑资料
  • leetcode笔记:Word Search II -
  • AOJ 0033 Ball -电脑资料
  • hdu1166 敌兵布阵(线段树) -电
  • 最新文章