2016-04-11 2 views
0

登録フォームを作成したいと思っています。ユーザーは、Windowsストアのプロフィール(.jsonの情報を保存します)誰かがカメラで写真を撮る方法と写真を保存する方法を教えてください。 enter image description here私たちが望むフォルダに画像とビデオを保存するカメラフォームを作成する方法

+0

Windows 8.1またはUWPアプリケーションはありますか? –

+0

私は両方が私が望む場所に表示されるカメラを見たい –

答えて

0

ウェブには多くの例があります。
まずXAMLメインページにする

<Capabilities> 
<DeviceCapability Name="webcam" /> 
</Capabilities> 

追加マニフェストに追加します。

 <StackPanel Orientation="Vertical" HorizontalAlignment="Center"> 

     <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,10,0,10"> 
     <Button x:Name="btnStartPreview" Background="Gray" 
             Click="btnStartPreview_Click" Margin="0,0,0,0" Content="Start preview"/> 
     <Button x:Name="btnTakePhoto" Background="Gray" 
             Click="btnTakePhoto_Click" Margin="10,0,0,0" Content="Take a photo"/> 
    </StackPanel> 
    <Grid> 
     <Image x:Name="captureImage" Width="400" Height="400" Visibility="Visible"/> 
     <CaptureElement x:Name="previewElement" Width="400" Height="400" Visibility="Visible"/> 
    </Grid> 
    </StackPanel> 

そして

using Windows.Media.Capture; 
using Windows.UI.Xaml.Media.Imaging; 
using Windows.Media.MediaProperties; 
using Windows.Storage.Streams; 

MediaCapture mediaCapture; 
bool isPreviewing = false; 

     private async void Page_Loaded(object sender, RoutedEventArgs e) 
    { 
     MediaCaptureInitializationSettings set = new MediaCaptureInitializationSettings(); 
     set.StreamingCaptureMode = StreamingCaptureMode.Video; 
     mediaCapture = new MediaCapture(); 
     await mediaCapture.InitializeAsync(set); 
    } 

     private async void btnStartPreview_Click(object sender, RoutedEventArgs e) 
    { 
     if (isPreviewing == false) 
     { 
      previewElement.Source = mediaCapture; 
      await mediaCapture.StartPreviewAsync(); 
      isPreviewing = true; 
     } 
     previewElement.Visibility = Visibility.Visible; 
    } 

MainPage.xaml.cs

にそしてbtnTakePhoto_Clickイベント内を

btnTakePhoto.IsEnabled = false; 
     btnStartPreview.IsEnabled = false; 

     InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream(); 
     await mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream); 

     stream.Seek(0); // текущую позицию потока устанавливаем в 0 
     BitmapImage bitmap = new BitmapImage(); 
     bitmap.SetSource(stream); 
     captureImage.Source = bitmap; 
     if (isPreviewing == true) await mediaCapture.StopPreviewAsync(); 
     isPreviewing = false; 

ここに大きな例があります: Capture photos and video with MediaCapture

関連する問題