如何在UWP中将图像从剪贴板保存到文件

时间:2015-11-08 12:03:32

标签: c# vb.net uwp

是否有任何等效的

Clipboard.GetImage().Save(FileName, Imaging.ImageFormat.Jpeg)

对于UWP(Windows通用平台)? 即将图形图像从剪贴板保存为jpg格式到文件。

我在vb.net/C#中寻找示例。

我已经开始

Dim datapackage = DataTransfer.Clipboard.GetContent()
If datapackage.Contains(StandardDataFormats.Bitmap) Then
Dim r As Windows.Storage.Streams.RandomAccessStreamReference = Await datapackage.GetBitmapAsync()

...

但我不知道如何继续(即使我甚至已经正确开始)。

1 个答案:

答案 0 :(得分:6)

第一步是尝试从剪贴板中获取图像(如果存在):

var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
if (dataPackageView.Contains(StandardDataFormats.Bitmap))
{
    IRandomAccessStreamReference imageReceived = null;
    try
    {
        imageReceived = await dataPackageView.GetBitmapAsync();
    }
    catch (Exception ex)
    {
    }

如果存在,请启动文件保存选择器,选择保存图像的位置,并将图像流复制到新文件。

    if (imageReceived != null)
    {
        using (var imageStream = await imageReceived.OpenReadAsync())
        {
            var fileSave = new FileSavePicker();
            fileSave.FileTypeChoices.Add("Image", new string[] { ".jpg" });
            var storageFile = await fileSave.PickSaveFileAsync();

            using (var stream = await storageFile.OpenAsync(FileAccessMode.ReadWrite))
            {
                await imageStream.AsStreamForRead().CopyToAsync(stream.AsStreamForWrite());
            }
        }
    }
}