При записи иконки в Base64 получаются битыми - C#

Узнай цену своей работы

Формулировка задачи:

Icon->byte[]
        public static byte[] ToByteArray(this Icon icon)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                icon.Save(ms);
                return ms.GetBuffer();
            }
        }
byte[]->Base64
                    if (Current.Icon != null)
                    {
                        Writer.WriteStartElement("Icon");
                        var buffer = Current.Icon.ToByteArray();
                        Writer.WriteBase64(buffer, 0, buffer.Length);
                        Writer.WriteEndElement();
                    }
Base64->byte[]
                                if (AppContentReader.IsStartElement("Icon"))
                                    using (var OS = new MemoryStream())
                                    using (var bw = new BinaryWriter(OS))
                                    {
                                        int ReadBytes = 0;
                                        byte[] buffer = new byte[100];
                                        while ((ReadBytes = AppContentReader.ReadElementContentAsBase64(buffer, 0, 50)) > 0)
                                            bw.Write(buffer, 0, ReadBytes);
                                        CurrentApp.Icon = OS.GetBuffer().ToIcon();
                                    }
byte[]->Icon
        public static Icon ToIcon(this byte[] bytes)
        {
            using (MemoryStream ms = new MemoryStream(bytes)) return new Icon(ms);
        }

Решение задачи: «При записи иконки в Base64 получаются битыми»

textual
Листинг программы
        public static byte[] ToByteArray(this Icon icon)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                icon.ToBitmap().Save(ms, ImageFormat.Png);
                return ms.GetBuffer();
            }
        }
        public static Icon ToIcon(this byte[] bytes)
        {
            using (MemoryStream ms = new MemoryStream(bytes)) return Icon.FromHandle(new Bitmap(ms).GetHicon());
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы