我正在编写一个程序,从XML文件创建和填充WPF应用程序中的控件。其中一个功能是用户可以选择要在程序中显示的图像。该图像显示在Image控件中。选择图像后,程序将所有数据保存回XML文件。
图像转换并保存如下:
byte[] bytes = new byte[1];
MemoryStream ms = new MemoryStream();
System.Drawing.Image image = new Bitmap(sPathOfImage);
image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
bytes = ms.ToArray();
XElement Image = new XElement("Image", Convert.ToBase64String(bytes));
xDocument.Add(Image);
xDocument.Save("xDocument.xml");
这很完美,一切都很好。然而,主要问题是XElement Image的值的长度。即使是40kb的图像,长度也有60,000个符号。对于9mb的图像,需要巨大的13,200,000个符号。现在我正在寻找更好的解决方案来存储XML文件中的图像。
根据规范,它必须在一个XML文件中。
那么,有没有一种好的方法来缩小字符串,使用更适合的流或者其他我可能忽略的东西?任何提示都将不胜感激。
byte[] bytes = ms.ToArray()
。 - ClemensJPEG
格式中,它所占用的字节数肯定不会和BMP
格式一样... - Steven Mills