2015-11-08 3 views
6

Есть ли эквивалентКак сохранить изображение из буфера обмена в файл в UWP

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

для UWP (Windows Универсальная платформа)? I.e. сохранение графического изображения из буфера обмена в формате 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() 

...

, но я не знаю, как продолжить (и даже если я даже начал правильно).

ответ

5

Первый шаг, чтобы попытаться получить изображение из буфера обмена, если он существует:

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

Спасибо. Выглядит хорошо. И мне также нравится, что мои 3 строки были в порядке, я имею в виду хорошее начало (за исключением пропущенных попыток/улов). jiri tywoniak –

+0

Это не работает, когда я пытаюсь сохранить скриншот. – Matt

+0

Обратите внимание, что хотя вы предоставили файл расширение .jpg, оно по-прежнему является файлом BMP. Вам нужно преобразовать фактические данные пикселей, чтобы сохранить их как JPG, PNG и т. Д. –