Comment enregistrer BitmapImage / WriteableBitmap à l'aide de SaveFileDialog dans Silverlight 3.0?
Comment un WriteableBitmap de Silverlight être Enregistrés sur le Système de Fichiers, je ne sais pas quoi faire avec le FileStream pour faire ce travail, il peut être en Bitmap, PNG, Jpeg, format etc, tant qu'une bibliothèque commerciale n'est pas nécessaire.
Est-il possible de faire cela?
Voici mon appel à SaveDialog, ci-dessous:
Dim SaveDialog As New SaveFileDialog
If SaveDialog.ShowDialog Then
Try
Using FileStream As Stream = SaveDialog.OpenFile
' Save Image File Code Here
End Using
Catch ex As Exception
End Try
End If
Modifier
Ajouter la mention de WritableBitmap que c'est ce que mon XAML est écrit, j'ai juste besoin de
pour la sauver, il existe une WriteableBitmap.Pixels de la propriété qui est de dimension 1 tableau d'entiers pixels, ceci peut être mis dans un filestream, et si oui, comment?
Voici un exemple de code que j'ai écrit le Pixel Flux à un
Fichier, mais cela fonctionne il n'est pas "bitmapify" les données et les
sortie est inutile, mais c'est de l'écriture de mon flux de l'image, j'ai juste
besoin de savoir comment mark-it-up de sorte que c'est un fichier Bitmap (ou autre chose).
J'ai trouvé le JPEG et PNG exemples, mais aucun d'entre eux expliquent bien comment ils fonctionnent, j'ai peut-être utiliser la PNGEncoding méthode car c'est la seule qui permettra à intégrer dans mon code. Mais est-il un simple fichier BMP version là?
Dim Image As Imaging.WriteableBitmap = _Style.Image
Dim Area As Integer = Image.PixelWidth * Image.PixelHeight
For Raster As Integer = 0 To Area - 1
Dim Pixel As Integer = Image.Pixels(Raster)
Dim Bytes() = BitConverter.GetBytes(Pixel And &HFF)
FileStream.Write(Bytes, 0, 4)
Next
Je voulais dire WritableBitmap, toutefois les anciens s'applique si c'est la manière d'une Image doit être enregistrée à partir de Silverlight, cependant, toute la méthode pour enregistrer une image à partir de Silverlight peut être acceptable
OriginalL'auteur RoguePlanetoid | 2009-09-08
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs open-source encodeurs:
FJCore: http://code.google.com/p/fjcore/
Joe Stegman PNG Encodeur: http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx
FreeImage: http://freeimage.sourceforge.net/
Vous pouvez les utiliser pour coder les formats les plus divers. Voici un post sur les économies d'une WriteableBitmap une fois que c'est cuit:
http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/03/18/Silverlight-3-1320-The-Bitmap-API-2F00-WriteableBitmap.aspx
Mise à JOUR:
Après avoir fait quelques recherches, il ressemble à l'enregistrement d'un WriteableBitmap d'un fichier est limitée dans le SL3 en raison de problèmes de sécurité. Il y a une solution:
http://geekswithblogs.net/braulio/archive/2009/07/12/export-canvas-to-png-and-save-it-in-your-local.aspx
On dirait que vous avez à sauvegarder le contenu d'une Toile à un fichier. Vous devriez être en mesure de modifier l'échantillon pour enregistrer en JPEG ou en d'autres formats.
Ils ne rendent pas la tâche facile. Je déduis de certains messages plus anciens que cela a été identifié comme un problème dans SL3 RC, et que Microsoft allait "essayer" de le résoudre dans RTW. Je ne vois aucune réponse définitive quant à savoir si ils l'ont fait, mais l'absence de toute orientation m'amène à croire qu'ils n'ont pas.
J'ai utilisé le FJCore bibliothèque et il a très bien fonctionné, de plus, c'était le principal format, j'espérais, le fait qu'il est possible de transférer un fichier à partir d'une image - même si c'est jibberish, signifie qu'il y a peut être un moyen, peut - être meilleur dans Silverlight 4.0?
J'espère qu'ils le rendent plus facile dans SL.Prochaine. Il serait Silverlight est un puissant outil de manipulation d'images plate-forme.
OriginalL'auteur Dave Swersky
J'ai déjà écrit ce post qui va au-comment enregistrer de XAML pour une image bitmap à l'aide d'une écriture bitmap, la boîte de dialogue enregistrer et FJCore.
http://blog.blueboxes.co.uk/2009/07/21/rendering-xaml-to-a-jpeg-using-silverlight-3/
OriginalL'auteur John