C# 执行相机预览镜像模式的正确方法

C# 执行相机预览镜像模式的正确方法,c#,windows-8,microsoft-metro,C#,Windows 8,Microsoft Metro,目前,当使用测试时,我意识到相机不是我想要的东西我希望它处于镜像模式。目前,情况并非如此。 对于处于镜像模式的相机预览,我想知道它是依赖于硬件还是独立于硬件。如果我用不同的硬件运行相同的代码,相机预览是否可能处于镜像模式?如果取决于硬件,如何检查相机预览是否处于镜像/非镜像模式 为了使其处于镜像模式,我尝试跟随。我尝试使用MediaCapture.SetPreviewMirroring(true)。没有效果。相机预览仍处于非镜像模式 我尝试capturelement.RenderTransfor

目前,当使用测试时,我意识到相机不是我想要的东西我希望它处于镜像模式。目前,情况并非如此。

  • 对于处于镜像模式的相机预览,我想知道它是依赖于硬件还是独立于硬件。如果我用不同的硬件运行相同的代码,相机预览是否可能处于镜像模式?如果取决于硬件,如何检查相机预览是否处于镜像/非镜像模式

  • 为了使其处于镜像模式,我尝试跟随。我尝试使用MediaCapture.SetPreviewMirroring(true)。没有效果。相机预览仍处于非镜像模式

  • 我尝试
    capturelement.RenderTransform=new ScaleTransform(){ScaleX=-1}。整个相机预览变成纯灰色

  • >P>最后一种方法,尝试通过C++代码> MyAcPAPTURES.ADDFFECASTYNC()/<代码>执行C++代码翻转。然而,这需要回到我的第一个问题。我可以只执行翻转,还是首先需要检查传入缓冲区是否处于镜像/非镜像模式?如果是,我如何检查

    使用

    
    

    关键在于
    renderTransferMorigin=“0.5,0.5”
    。我们需要从预览的中心翻转。

    这不起作用。捕捉元素不是可以翻转或旋转的常规元素,相机会将帧转储到其中,并忽略方向或变换。
        <CaptureElement x:Name="previewElement" Margin="0" Stretch="UniformToFill" RenderTransformOrigin="0.5,0.5">
            <CaptureElement.RenderTransform>
                <CompositeTransform ScaleX="-1"/>
            </CaptureElement.RenderTransform>
        </CaptureElement>