2015-11-08 16 views
6

Czy istnieje odpowiednikJak zapisać obraz ze schowka do pliku w UWP

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

dla UWP (Windows uniwersalnej platformy)? tj. zapisywanie obrazu graficznego ze schowka do formatu JPG do pliku.

Szukam przykładu w vb.net/C#.

już rozpoczął

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

...

ale nie wiem jak kontynuować (a nawet jeśli mam nawet zaczął poprawnie).

Odpowiedz

5

Pierwszym krokiem jest, aby spróbować i uzyskać obraz ze schowka, jeśli istnieje:

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

Jeżeli istnieje, uruchom plik zapisać próbnik, wybierz gdzie zapisać obraz, a następnie skopiować obraz stream do nowego pliku.

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

Dzięki. Wygląda dobrze. I podoba mi się również to, że moje 3 linie były w porządku, mam na myśli dobry start (z wyjątkiem braku try/catch). jiri tywoniak –

+0

To nie działa, kiedy próbuję zapisać zrzut ekranu – Matt

+0

Pamiętaj, że mimo że plik został podany w rozszerzeniu .jpg, nadal jest plikiem BMP. Musisz przekonwertować rzeczywiste dane pikseli, aby zapisać je jako JPG, PNG itp. –

Powiązane problemy