微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

视频画刷VideoBrush

在silverlight图像或视频绘制中,设置元素的背景色,前景色,轮廓颜色,填充色等。。画刷是一个比较重要的概念,用来设置元素的颜色或填充内容,以至于达到丰富多彩的效果,主要包括纯色画刷(SolidColorBrush),用来填充纯色,渐变色画刷(包括线性渐变LinearGradientBrush和辐射渐变RadialGradientBrush)来实现图形的渐变色效果,可以使用它们来形成光和影的效果,使 图形界面 元素具有三维外观。还可以使用它们来模拟玻璃、镶边、水和其他光滑表面。还有图形画刷(ImageBrush将图像用作填充、背景和轮廓。本文主要介绍的是视频画刷(VideoBrush)使用视频绘制某个区域。
首先介绍MediaElement 对象,MediaElement表示一个包含音频和/或视频的对象,包含视频或音频对的基本性质长度,宽度,变换等,以及常用方法,暂停,播放,停止,声音的设置,Source属性用来指定相应的媒体对象,若要禁止媒体自动启动,请将 AutoPlay 属性设置为 false
为了获得更好的性能,请避免将数据绑定到 Position 属性来反映频繁的位置更新(例如,进度条)。而是使用 DispatcherTimer查询 Position 属性
 
如果MediaElement是一个存在内存中的视频对象的话,那么视频画刷就是一个把这个内存对象展示出来的画板,
常用的属性如下
opacity 设置或者视频的透明度,SourceName 设置或者获取视频画刷的MediaElement的X:Name.   Stretch获取或设置一个值,该值指定此 TileBrush内容如何拉伸以适合其图块 ,RelativeTransform 获取或设置要使用相对坐标应用于画笔的变换。

Stretch 属性接受 Stretch 枚举定义的下列值:

下图举例说明了不同的 Stretch 设置。


 

首先找一个 wmv或者mp4格式的视频
 
 
<Grid x:Name="LayoutRoot"  >
<MediaElement x:Name="kobemv" Source="kobemv.mp4"  Autoplay="True"></MediaElement>
        <Grid.Background>
            <VideoBrush SourceName="kobemv" Stretch="Uniform"></VideoBrush>
        </Grid.Background>
    </Grid>
这是一个科比的mv,看看效果 。嘿嘿


下面实现 让这个视频作为文字的前景色

<Grid x:Name="LayoutRoot"  >
<MediaElement x:Name="kobemv" Source="kobemv.mp4" Opacity="0.0" Autoplay="True"></MediaElement>
        <TextBlock HorizontalAlignment="Left"  FontFamily="Verdana" FontSize="500" FontWeight="Bold"  Name="textBlock1" Text="坤坤" VerticalAlignment="Top">
            <TextBlock.Foreground >
                <VideoBrush SourceName="kobemv" ></VideoBrush>
            </TextBlock.Foreground>
        </TextBlock>
    </Grid>


实现一个简单的简单的立体效果,主要是用了UI的Projection

<Grid x:Name="LayoutRoot"  >
<MediaElement x:Name="kobemv" Source="kobemv.mp4" Opacity="0.0" Autoplay="True"></MediaElement>
        <StackPanel Background="Gray"  >
            <TextBlock HorizontalAlignment="Left"   FontFamily="Verdana" FontSize="500" FontWeight="Bold"  Name="textBlock1" Text="坤坤" VerticalAlignment="Top">
          
            <TextBlock.Projection >
                <PlaneProjection RotationX="-20" RotationY="-20" RotationZ="20"></PlaneProjection>
            </TextBlock.Projection>
            <TextBlock.Foreground >
               
                <VideoBrush SourceName="kobemv" ></VideoBrush>
            </TextBlock.Foreground>
            </TextBlock>
        </StackPanel>
          
    </Grid>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐