1
private async void Button_Click2(object sender, RoutedEventArgs e)
    {
        CameraCaptureUI camera = new CameraCaptureUI();
        camera.PhotoSettings.AllowCropping = true;
        camera.PhotoSettings.CroppedAspectRatio = new Size(16, 9);
        StorageFile photo = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);

        if (photo != null)
        {
            IRandomAccessStream stream = await photo.OpenAsync(FileAccessMode.Read);
            bmp.SetSource(stream);
            imageGrid.Source = bmp;
        }
    }

    private async void saveButton_Click3(object sender, RoutedEventArgs e)
    {


        //Save Image to the file
        //What code goes here?

    }

写真を撮った後、ユーザーが見られるように画像をグリッド(imageGrid)に設定しました。いくつかのタスクを完了した後、ユーザーがボタンを押して画像とテキストの情報を保存できるようにしたいと思います。テキストをファイルに保存するのに問題はありませんが、この方法で画像を保存するための情報が見つからないようです。カメラから直接保存したくありません。コマンドで保存できるようにする必要があります。だから私の質問は、キャプチャした画像をXAML画像としてUIに設定した後、どうすれば保存できますか?前もって感謝します。

4

1 に答える 1

4

Sandra が既に示唆したように、 の結果に固執する必要がありますCaptureFileAsync。このメソッドは、キャプチャした画像をファイルに保存し、StorageFile. その参照をプライベート フィールドに保存し、ユーザーがクリックしたらそこからコピーするだけSaveです。

private StorageFile photo;

private async void Button_Click2(object sender, RoutedEventArgs e)
{
    CameraCaptureUI camera = new CameraCaptureUI();
    camera.PhotoSettings.AllowCropping = true;
    camera.PhotoSettings.CroppedAspectRatio = new Size(16, 9);
    photo = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);

    if (photo != null)
    {
        IRandomAccessStream stream = await photo.OpenAsync(FileAccessMode.Read);
        bmp.SetSource(stream);
        imageGrid.Source = bmp;
    }
}

private async void saveButton_Click3(object sender, RoutedEventArgs e)
{
    if (photo != null)
    {
        await photo.MoveAsync(ApplicationData.Current.LocalFolder, newFilename);
    }
}
于 2012-12-29T05:29:45.197 に答える