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

时间:2012-11-07 03:56:35

标签: c# windows-8 microsoft-metro

目前,在使用Media capture using capture device sample测试时,我意识到相机不是我想要的。 我希望它处于镜像模式。目前,它不是。

  1. 要使相机预览处于镜像模式,我可能知道它是依赖于硬件还是与硬件无关。可能如果我使用不同的硬件运行相同的代码,相机预览将处于镜像模式?如果它取决于硬件,如何检查我的相机预览是否处于镜像/非镜像模式?

  2. 要使其处于镜像模式,我会尝试关注this thread。我试试MediaCapture.SetPreviewMirroring(true)。没有任何影响。相机预览仍处于非镜像模式。

  3. 我尝试captureElement.RenderTransform = new ScaleTransform() { ScaleX = -1 };。整个相机预览变为纯灰色。

  4. 我想尝试的最后一种方法是尝试通过MediaCapture.AddEffectAsync()执行C ++代码翻转。但是,需要回到我的第一个问题。我可以简单地执行翻转,还是首先需要检查传入缓冲区是否处于镜像/非镜像模式?如果是,我该如何检查?

1 个答案:

答案 0 :(得分:0)

使用

    <CaptureElement x:Name="previewElement" Margin="0" Stretch="UniformToFill" RenderTransformOrigin="0.5,0.5">
        <CaptureElement.RenderTransform>
            <CompositeTransform ScaleX="-1"/>
        </CaptureElement.RenderTransform>
    </CaptureElement>

密钥在RenderTransformOrigin="0.5,0.5"上撒谎。我们需要从预览中心翻转。