2017-01-26 2 views
1

J'ai une image SurfaceImageSource et je la convertirais en PNG. J'ai essayé d'utiliser ce projet: linkConvertir SurfaceImageSource en PNG

J'ai essayé d'utiliser la bibliothèque SharpDX, mais je n'ai pas réussi.

    private void initialize() 
       { 
         StorageFolder folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("folder", CreationCollisionOption.OpenIfExists); 
         StorageFile imagePng = await folder.CreateFileAsync("file.png", CreationCollisionOption.ReplaceExisting); 

         if (imagePng != null) 
         { 
          //surfaceImageSource to PNG method 
          surfaceToPng(surfaceImage,imagePng); 
         } 
       } 

       private void surfaceToPng(SurfaceImageSource surface,StorageFile imagePng){ 
         IRandomAccessStream stream = await imagePng.OpenAsync(FileAccessMode.ReadWrite); 

          //.....// 
       } 

Répondre

1

Le sample vous Liées est de « Comment enregistrer la cible SurfaceImageSource comme une image dans l'application universelle » qui est juste ce que vous voulez. Il crée un C++ Windows Runtime Component nommé "MyImageSourceComponent" et fournit une classe scellée nommée "MyImageSource" qui contient la méthode public void SaveSurfaceImageToFile(IRandomAccessStream randomAccessStream); Vous pouvez appeler cette méthode pour enregistrer le SurfaceImageSource au format png. Bien que cet exemple soit pour Windows 8.1, il devrait également être capable de travailler avec l'application uwp. J'ai aidé à convertir l'échantillon en application uwp here vous pouvez référencer. J'ai créé une nouvelle application uwp avec un composant Windows Runtime et référence le code de "MyImageSouceComponent" dans l'exemple. Ajoutez ensuite le composant d'exécution en tant que référence au projet uwp. Enfin, utilisez le code ci-dessus pour appeler la méthode SaveSurfaceImageToFile.

+0

Merci beaucoup pour la réponse. Mon problème est le suivant: j'ai déjà une image du type SurfaceImageSource. Dans votre code, vous créez et dessinez une nouvelle image du type MyImageSource. Je devrais transformer mon image SurfaceImageSource en MyImageSource pour utiliser la méthode SaveSurfaceImageToFile pour mon image. mais je ne réussis pas. – Andrea485