3

すべてポートレートモードのアプリにカメラを追加したので、このように維持したいと思います。

.XAMLで使用する関連するコードスニペットは次のとおりです

SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d" d:DesignHeight="800" d:DesignWidth="480"

    <Canvas x:Name="viewfinderCanvas" Width="480" Height="800" >
        <!--Camera viewfinder -->
        <Canvas.Background>
            <VideoBrush x:Name="viewfinderBrush">
            </VideoBrush>
        </Canvas.Background>
    </Canvas>    

これが.XAML.CSからのセットアップコードです

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
         if (PhotoCamera.IsCameraTypeSupported(CameraType.FrontFacing))
         {
            cam = new Microsoft.Devices.PhotoCamera(CameraType.FrontFacing);
         }
         else
         {
            cam = new Microsoft.Devices.PhotoCamera(CameraType.Primary);
         }

         cam.Initialized += new EventHandler<Microsoft.Devices.CameraOperationCompletedEventArgs>(cam_Initialized);
         cam.CaptureCompleted += new EventHandler<CameraOperationCompletedEventArgs>(cam_CaptureCompleted);
         cam.CaptureImageAvailable += new EventHandler<Microsoft.Devices.ContentReadyEventArgs>(cam_CaptureImageAvailable);
         cam.CaptureThumbnailAvailable += new EventHandler<ContentReadyEventArgs>(cam_CaptureThumbnailAvailable);
         viewfinderBrush.SetSource(cam);
    }

問題は、私が電話をポートレートで保持し、電話を人に向けることです。画面には、画面の右側に人の頭が表示され、画面の左側に人の足が表示されます。彼らが私の前に立っている間、頭は画面の上部にあり、足は下部にあるはずですが、これらの人々をスーパーマンではないようにします。

そのため、カメラからの画像は、画面に表示される前に-90回転しているようです。

誰かが何がうまくいかないのか、そしてこの問題を解決するためにどのサンプルコードを実装する必要があるのか​​を説明できますか?

ありがとう、-コード

4

2 に答える 2

3

次の記事で詳しく説明するように、VideoBrush.RelativeTransformを実装する必要があります:-

http://msdn.microsoft.com/en-us/magazine/hh708750.aspx

以下でもカバーされます:-

Windows Phone 7MangoPhotoCameraを使用したViewFinderの向き

于 2012-04-25T14:26:32.457 に答える
1

この行をカメラページのC#コードに追加するだけです。ポートレートモードでカメラのビデオストリームを正しく変換して処理します。

viewfinderTransform.Rotation = 90;
于 2013-06-17T09:12:09.147 に答える