图形---图像处理

创建图像

为了呈现图像,您可以使用 ImageImageBrush 对象

< Image Source = " myPicture.png " />
Image myImage = new Image();
myImage.Source
= new BitmapImage( new Uri( " myPicture.jpg " , UriKind.RelativeOrAbsolute));
LayoutRoot.Children.Add(myImage);

您可以直接设置 Source,也可以通过以下 URL 方案之一设置:

  • 绝对 URL,例如,http://contoso.com/myPicture.jpg

  • 相对于引用 XAML 文件。在这种情况下,指定不带前导斜杠的相对 URL。例如,Source="myPicture.png" 指定了在程序集中嵌入的与 XAML 文件位于相同文件夹位置的图像文件。还可以在目录结构中向上遍历,只要可以在 XAP 结构中解析路径。例如,Source="../resources/myPicture.png" 指定了来自 Resources 文件夹的图像文件,该文件夹与 XAP 找到其 XAML 文件组件的文件夹位置同级。

  • 相对于 XAP 文件应用程序根。在这种情况下,指定带有前导斜杠的相对 URL,该 URL 从 XAP 结构根处开始路径解析。例如,Source="/resources/myPicture.png" 指定了来自在 XAP 结构中定义的根级 resources 目录的源。推荐用此方法取代以前的相对 URL 方法,因为对 XAML 文件的 XAP 位置的更改(例如将 XAML 从页定义移入资源字典)不会中断相对于 XAP 结构根的引用。此方法通常用于作为 Content 生成操作放入 XAP 的图像源。

  • 指定一个程序集,然后通过引用 component; 标记在其概念根位置输入程序集结构。这是最为可靠的 URL 指定方式,因为即便您在程序集之外完全重构 XAML(例如,如果您将此部分 XAML 移入某个附属程序集以进行本地化),以这种方式仍可解析为图像目标。例如,Source="MySilverlightApp;component/myPicture.png" 引用了应该作为下载程序集提供的程序集 MySilverlightApp。您指定的程序集可以是 XAP 中的主应用程序程序集,换言之,即 Silverlight 项目输出路径声明的同一程序集名称。不要在此 URI 方案中指定 .dll 扩展名后缀。

裁切图像

可以通过使用 Clip 属性裁切掉图像输出的某个区域来裁切图像

< Grid x:Name = " LayoutRoot " Background = " White " >
< Image Source = " Water_lilies.jpg "
Width
= " 200 " Height = " 150 " >
< Image.Clip >
< EllipseGeometry RadiusX = " 100 " RadiusY = " 75 " Center = " 100,75 " />
</ Image.Clip >
</ Image >
</ Grid >

应用 OpacityMask

您可以将 OpacityMask 应用于某一图像,以便创建多种与不透明度相关的照片蒙板技术,例如虚光照效果

下面的 XAML 示例在图像上放置一个居中的椭圆屏蔽,这样,图像将使用径向梯度在椭圆边缘淡出到为零的不透明度。

< Image Source = " sampleImages/forest.jpg " Height = " 100 " >
< Image.OpacityMask >
< RadialGradientBrush Center = " 50,50 " GradientOrigin = " 50,50 " MappingMode = " Absolute " RadiusX = " 90 " RadiusY = " 50 " >
< GradientStop Color = " #00000000 " Offset = " 25 " />
< GradientStop Color = " #20000000 " Offset = " 12 " />
< GradientStop Color = " #FF000000 " Offset = " 0 " />
</ RadialGradientBrush >
</ Image.OpacityMask >
</ Image >

使用图像绘制 (ImageBrush)

您使用 ImageBrush 来使用图像绘制采用画笔的区域。例如,ImageBrush 可用于 CanvasInkPresenterBackground 属性的值

<!-- TextBlock with an image brush applied to the text. -->
< TextBlock FontFamily = " Verdana " FontSize = " 72 "
FontStyle
= " Italic " FontWeight = " Bold " >
SHRUBBERY
< TextBlock.Foreground >
< ImageBrush ImageSource = " forest.jpg " />
</ TextBlock.Foreground >
</ TextBlock >


转载于:https://www.cnblogs.com/landexia/archive/2011/03/16/1985968.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值