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();
}
}
私は自分の答えを書くのではなく、適切なサンプルページを指摘してから、答えを編集し、OPが探しているコードを含める方が良いでしょう。これはあなたと大丈夫ですか? – AVK
@Matt Laceyあなたが書いたコードは、私の要求事項を無視していません。私は、パスを要求せずに写真が自動的に携帯電話に保存されるように要求しました。 –
@BibeshManandharは、リンクされたサンプルコードの改訂に基づいて答えを更新しました –