1

这是我迄今为止尝试的方向,我面临的问题potraitdown它显示图像在两个招,我想要做的是首先默认摄像头的方向和第二放大和捕捉图像使用canavas我可以放大和缩小相机,我也有方向错误的Windows Phone应用程序

之前缩小我在XAML

<Canvas x:Name="viewfinderCanvas" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,10"> 
     <Canvas.Background> 
      <VideoBrush x:Name="viewfinderBrush"> 
       <VideoBrush.RelativeTransform> 

       <CompositeTransform 
        x:Name="viewfinderTransform" 
        CenterX="0.5" 
        CenterY="0.5" 
        Rotation="-90" /> 

       </VideoBrush.RelativeTransform> 
      </VideoBrush> 
     </Canvas.Background> 
    </Canvas> 

写了这个代码这是用于定向C#

protected override void OnOrientationChanged(OrientationChangedEventArgs e) 
    { 

     if (cam != null) 
     { 

      if (e.Orientation == PageOrientation.LandscapeRight) 
      { 
       landscapeRightRotation = 180; 
       // Rotate for LandscapeRight orientation. 
       viewfinderBrush.RelativeTransform = 
        new CompositeTransform() { CenterX = 0.5, CenterY = 0.5, Rotation = landscapeRightRotation }; 
      } 
      else if (e.Orientation == PageOrientation.PortraitUp) 
      { 
       landscapeRightRotation = -90; 
       viewfinderBrush.RelativeTransform = 
        new CompositeTransform() { CenterX = 0.5, CenterY = 0.5, Rotation = landscapeRightRotation }; 
      } 

      else if (e.Orientation == PageOrientation.PortraitDown) 
      { 
       landscapeRightRotation = 0; 
       // Rotate for LandscapeRight orientation. 
       viewfinderBrush.RelativeTransform = 
        new CompositeTransform() { CenterX = 0.5, CenterY = 0.5, Rotation = landscapeRightRotation }; 
      } 
      else 
      { 

       viewfinderBrush.RelativeTransform = 
        new CompositeTransform() { CenterX = 0.5, CenterY = 0.5, Rotation = 0 }; 
      } 
     } 

     viewfinderTransform.ScaleY = 0; 
     base.OnOrientationChanged(e); 
    } 

回答

0

我是能够解决的放大和缩小,加入两件事情RenderTransformSlider,但仍面临着更新的方向 XAML中的问题

 <Canvas x:Name="viewfinderCanvas" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,10"> 
     <Canvas.RenderTransform> 
      <ScaleTransform x:Name="zoom"/> 
      <!--<CompositeTransform scalex="-1"/>--> 
     </Canvas.RenderTransform> 
     <Canvas.Background> 

      <VideoBrush x:Name="viewfinderBrush"> 
       <VideoBrush.RelativeTransform> 

        <CompositeTransform 
        x:Name="viewfinderTransform" 
        CenterX="0.5" 
        CenterY="0.5" 
        Rotation="-90" /> 

       </VideoBrush.RelativeTransform> 
      </VideoBrush> 
     </Canvas.Background> 
    </Canvas> 
    <Slider Foreground="White" Value="1" Opacity=".3" Background="White" Visibility="Visible" Name="zoomSlider" ValueChanged="zoomSlider_ValueChanged_1" Margin="0,570,0,10" /> 

和C#for zoomSlider_ValueChanged_1

private void zoomSlider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e) 
    { 
     try 
     { 
      zoom.ScaleX = zoomSlider.Value; 
      zoom.ScaleY = zoomSlider.Value; 
      zoom.CenterX = 10; 
      zoom.CenterY = 5; 
     } 
     catch (Exception) 
     { 
     } 
    } 
+0

需要帮助以获取默认方向或角度,因为内置摄像头具有 –

相关问题