Примеры Delphi и C# из жизни

Примеры программирования на языках Delphi, C#

 




Как преобразовать Bitmap в строку текста и обратноЁ- C#. | C#

Возникла у меня как-то задача: хранить небольшие картинки в XML-файле. Как оказалось, все решается просто.
Bitmap bmp;
TypeConverter bmpConverter = TypeDescriptor.GetConverter(bmp.GetType());
byte[] bmpData = (byte[])bmpConverter.ConvertTo(bmp, typeof(byte[]));
string bmp_str = Convert.ToBase64String(bmpData, Base64FormattingOptions.InsertLineBreaks);



Теперь полученную строку можем сохранить в XML:
XmlTextWriter writer = new XmlTextWriter(FileName, System.Text.Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("xmlElement");
writer.WriteString(bmp_str);
writer.WriteEndElement();
writer.WriteEndDocument();



Обратное преобразование из строки в Bitmap делаем так:
byte[] bmpData;
bmpData = Convert.FromBase64String(bmp_str);
MemoryStream stream = new MemoryStream(bmpData);
bmp = new Bitmap(stream);



Вот все.
Приведенный метод работает как с небольшими, так и с достаточно крупными изображениями. Правда, хранить большие массивы данных в XML, наверное, не совсем удачная идея.