Преобразование изображения в растровое изображение становится черным

Мне нужно преобразовать изображение в растровое изображение.

сначала gif читался как байты, а затем преобразовывался в изображение.

Но когда я пытаюсь преобразовать изображение в битовую карту, графическое отображение на моем фотобумаге имеет черный фон, когда он был белым.

Вот код:

    var image = (System.Drawing.Image)value;
        // Winforms Image we want to get the WPF Image from...
        var bitmap = new System.Windows.Media.Imaging.BitmapImage();
        bitmap.BeginInit();
        MemoryStream memoryStream = new MemoryStream();
        // Save to a memory stream...
        image.Save(memoryStream, ImageFormat.Bmp);
        // Rewind the stream...
        memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
        bitmap.StreamSource = memoryStream;
        bitmap.EndInit();
        return bitmap;

Может кто-нибудь объяснить, почему фон становится черным и как я могу остановить его, делая это.

Спасибо

Ответ 1

Не сохранять в виде растрового файла. Формат файла не поддерживает прозрачность, поэтому изображение будет сохранено без прозрачности.

Вместо этого вы можете использовать формат файла PNG. Это сохранит прозрачность.

Если вам действительно нужно использовать формат растрового файла, вы должны сначала сделать его непрозрачным. Создайте новый растровый рисунок с таким же размером, используйте метод Graphics.FromImage, чтобы получить графический объект для рисования на изображении, используйте метод Clear, чтобы заполнить его цветом фона, который вы хотите, используйте метод DrawImage для нарисуйте изображение поверх фона, а затем сохраните это растровое изображение.