【问题标题】:How to save image from clipboard to file in UWP如何将剪贴板中的图像保存到 UWP 中的文件
【发布时间】:2015-11-09 01:31:25
【问题描述】:

有没有等价的

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

对于 UWP(Windows 通用平台)? IE。将剪贴板中的图形图像保存为 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()

...

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

【问题讨论】:

    标签: c# vb.net uwp


    【解决方案1】:

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

    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());
                }
            }
        }
    }
    

    【讨论】:

    • 谢谢。这看起来不错的样子。而且我也喜欢我的 3 行没问题,我的意思是好的开始(除了缺少 try/catch)。 jiri tywoniak
    • 请注意,尽管您为文件指定了 .jpg 扩展名,但它仍然是 BMP 文件。您需要将实际的像素数据转换为JPG、PNG等格式。
    • @MahmoudAl-Qudsi 感谢您的建议。这为我省去了很大的麻烦。
    猜你喜欢
    • 2021-01-20
    • 2014-08-12
    • 2020-05-05
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多