C# Windows 10中的圆形CaptureElement摄影机流

C# Windows 10中的圆形CaptureElement摄影机流,c#,windows-runtime,winrt-xaml,windows-10,uwp,C#,Windows Runtime,Winrt Xaml,Windows 10,Uwp,在Windows 10中,无论您在哪里查看,都会看到圆圈。使图像呈圆形是相当容易的,但相机有点不同。是否有一种简单的XAML方法可以在CaptureElement中剪辑摄影机流,使其成为一个圆 我试着把它放在一个边框里,但是CaptureElement不关心它的边框。我还尝试使用“剪辑”属性,但它只能剪辑为矩形几何体。 一种方法当然是抓取CaptureElement帧,将其转换为图像(逐帧)并应用于图像元素,然后剪裁图像,但这似乎会有糟糕的性能 框架中是否有什么东西可以让这变得非常简单,但我没有

在Windows 10中,无论您在哪里查看,都会看到圆圈。使图像呈圆形是相当容易的,但相机有点不同。是否有一种简单的XAML方法可以在CaptureElement中剪辑摄影机流,使其成为一个圆

我试着把它放在一个边框里,但是CaptureElement不关心它的边框。我还尝试使用“剪辑”属性,但它只能剪辑为矩形几何体。 一种方法当然是抓取CaptureElement帧,将其转换为图像(逐帧)并应用于图像元素,然后剪裁图像,但这似乎会有糟糕的性能


框架中是否有什么东西可以让这变得非常简单,但我没有看到它?

在看到可能是背景后,画布DirectX的背景始终是黑色的,我看到的唯一方式是:

1.-例如,在Inkscape中用椭圆剪裁矩形

2.-复制到表达式设计和Ctrl-Shift-C(复制XAML)

3.-仅将生成的路径放置在视口框内

 <Grid  Width="300" Height="300">
            <CaptureElement Name="PreviewControl" Stretch="Uniform" Width="280" Height="280" />
            <Viewbox Width="280" Height="280">
                <Path Width="813.701" Height="813.701" Canvas.Left="-33.3503" Canvas.Top="-45.3503" Stretch="Fill" Fill="#FF800080" Data="F1 M -33.3503,-45.3503L -33.3503,768.35L 780.35,768.35L 780.35,-45.3503L -33.3503,-45.3503 Z M 373.54,158.095C 485.863,158.095 576.985,249.137 576.985,361.54C 576.985,473.863 485.863,564.985 373.54,564.985C 261.137,564.985 170.095,473.863 170.095,361.54C 170.095,249.137 261.137,158.095 373.54,158.095 Z "/>
            </Viewbox>
        </Grid>


有了它,你可以在路径中放置一个图像,或者用纯色,这是我看到的唯一方法。希望它有帮助

我看到的唯一方法是使用Win2D,但我无法实例化以使视频透明,例如:Win2D.uap-DisplacementEffect.cs-ProcessFrame(ProcessVideoFrameContext)。我已经在CanvasBitmap和CanvasRenderTarget以及ds.Clear(Colors.Transparent)的构造函数中测试设置了CanvasAlphaMode//ds.DrawImage(dispMap,-25f,-25f);ds.DrawCircle(新矢量2(100100),100,彩色。红色);(这在其他情况下是透明的,但视频谁知道呢)。我已经给Win2D团队发了推特,让我们看看他们的知识是否可以实现