.NET 4.x Сохранение массива в изображение - C#

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

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

Дан набор байт, которые определяют изображение с заранее известной глубиной цвета — 8 бит. Необходимо сохранить данный массив в изображение. Пробовал:
                using (Image img = CreateImage(width, height, Sprite))
                {
                    img.Save(@".\test.png");
                }
        private static Image CreateImage(int width, int heigth, byte[] buffer)
        {
            Image _image;
            Bitmap bmp = new Bitmap(width, heigth, PixelFormat.Format8bppIndexed);
            Rectangle rect = new Rectangle(Point.Empty, bmp.Size);
            BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, bmp.PixelFormat);
            try
            {
                Marshal.Copy(buffer, 0, bmpData.Scan0, width * heigth);
            }
            finally
            {
                bmp.UnlockBits(bmpData);
                _image = (Image)bmp;
            }
            return _image;
        }
На сохраненном изображении удается разглядеть лишь некоторые очертания. Собственно, что я не так делаю?

Решение задачи: «.NET 4.x Сохранение массива в изображение»

textual
Листинг программы
Marshal.Copy(buffer, 0, bmpData.Scan0, width * heigth);

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


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

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

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