2017-01-16 6 views
0

私は3つのボタンと1つの画像ビューを持っています。最初のボタン(カメラ)はカメラを開き、画像をクリックし、クリックした画像をその画像ビューに設定します。 2番目のボタン(ファイル)フォルダの画像を写真にして、3番目のボタン(保存)をクリックして、表示された画像をモバイルに保存します。デスクトップでは、ファイルピッカーオプションを使って画像を尊重したフォルダに簡単に保存できますが、モバイルギャラリーのボタンを押すと画像が自動的に保存されます。保存方法UWPの保存ボタンをクリックすると、自動的にWindowsの電話機からキャプチャされた画像が表示されますか?

答えて

1

code.msdnのサンプルに基づく。
最初の保存ファイルの内容を表示し、新しいファイルを作成して保存するのではなく、ピクチャフォルダにランダムに生成されたファイル名とコードサンプルを組み合わせただけです(画像フォルダ機能を追加することを忘れないでください)。

private StorageFile storeFile; 
private IRandomAccessStream stream; 
private async void SavePhotoClicked(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     CameraCaptureUI capture = new CameraCaptureUI(); 
     capture.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg; 
     capture.PhotoSettings.CroppedAspectRatio = new Size(3, 5); 
     capture.PhotoSettings.MaxResolution = CameraCaptureUIMaxPhotoResolution.HighestAvailable; 
     storeFile = await capture.CaptureFileAsync(CameraCaptureUIMode.Photo); 

     if (storeFile != null) 
     { 
      stream = await storeFile.OpenAsync(FileAccessMode.Read); 

      var s = await KnownFolders.PicturesLibrary.CreateFileAsync(DateTime.UtcNow.ToString("yyyyMMddHHmmss") + ".jpg"); 

      using (var dataReader = new DataReader(stream.GetInputStreamAt(0))) 
      { 
       await dataReader.LoadAsync((uint)stream.Size); 
       byte[] buffer = new byte[(int)stream.Size]; 
       dataReader.ReadBytes(buffer); 

       await FileIO.WriteBytesAsync(s, buffer); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     var messageDialog = new MessageDialog(ex.Message, "Unable to save now."); 
     await messageDialog.ShowAsync(); 
    } 
} 
+1

私は自分の答えを書くのではなく、適切なサンプルページを指摘してから、答えを編集し、OPが探しているコードを含める方が良いでしょう。これはあなたと大丈夫ですか? – AVK

+0

@Matt Laceyあなたが書いたコードは、私の要求事項を無視していません。私は、パスを要求せずに写真が自動的に携帯電話に保存されるように要求しました。 –

+0

@BibeshManandharは、リンクされたサンプルコードの改訂に基づいて答えを更新しました –

関連する問題