2015-11-08 17 views
6

Esiste un equivalente diCome salvare un'immagine da appunti su file in UWP

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

per UWP (Windows Platform universale)? I.e. salvare l'immagine grafica dagli appunti nel formato jpg al file.

Sto cercando per esempio in vb.net/C#.

Ho già iniziato con

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

...

ma non so come continuare (e anche se ho anche iniziato in modo corretto).

risposta

5

Il primo passo è quello di cercare di ottenere l'immagine dalla clipboard, se esiste:

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

Se esiste, lanciare un file di salvataggio selettore, scegliere dove salvare l'immagine, e copiare l'immagine flusso al nuovo file.

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

Grazie. Sembra buona. E mi piace anche che le mie 3 linee fossero OK, voglio dire buon inizio (ad eccezione della mancanza di try/catch). jiri tywoniak –

+0

Questo non funziona, quando provo a salvare uno screenshot – Matt

+0

Nota che sebbene tu abbia dato al file un'estensione .jpg, è ancora un file BMP. Devi convertire i dati effettivi dei pixel per salvarli come JPG, PNG, ecc. –