Need to serialize a silverlight bitmap

I need a serialized custom class with bitmapImage (tagged xmlIgnore right now). I am using xmlSerialization, but I think this is bad. Do you have some ideas how I can serialize my class? Perhaps you can provide a simple example?

class X { private BitmapImage someImage; public BitmaImage{get;set} } 

In fact, later I will use the WCF service. Thanks)

+2
source share
2 answers

You can open the image as a byte array , for example:

 public byte[] ImageAsBytes { get { return BytesFromImage(someImage); } set { someImage = ImageFromBytes(value); } } 

You can, of course, convert back using the stream and StreamSource property.

+2
source

You can convert the image to a Base64 string. Examples from here :

 //Convert image to the string public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format) { using (MemoryStream ms = new MemoryStream()) { // Convert Image to byte[] image.Save(ms, format); byte[] imageBytes = ms.ToArray(); // Convert byte[] to Base64 String string base64String = Convert.ToBase64String(imageBytes); return base64String; } } //when deserializing, convert the string back to an image public Image Base64ToImage(string base64String) { // Convert Base64 String to byte[] byte[] imageBytes = Convert.FromBase64String(base64String); MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); // Convert byte[] to Image ms.Write(imageBytes, 0, imageBytes.Length); Image image = Image.FromStream(ms, true); return image; } 
+2
source

Source: https://habr.com/ru/post/1393100/


All Articles