c # wpf Высокое качество изображения в байтах и ​​обратно - PullRequest
0 голосов
/ 26 июня 2018

Итак, я передаю источник изображения через сокет, и для этого мне нужно преобразовать его в форму byte [].Мне удалось это использовать, используя эти функции для преобразования источника изображения.

    public static BitmapSource ConvertByteArrayToBitmapImage(Byte[] imageData)
    {
        using (MemoryStream ms = new MemoryStream(imageData))
        {
            var decoder = BitmapDecoder.Create(ms,
                BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
            return decoder.Frames[0];
        }
    }
    public static byte[] ConvertBitmapSourceToByteArray(ImageSource imageSource)
    {
        var image = imageSource as BitmapSource;
        byte[] data;
        BitmapEncoder encoder = new JpegBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(image));
        using (MemoryStream ms = new MemoryStream())
        {
            encoder.Save(ms);
            data = ms.ToArray();
        }
        return data;
    }

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

Заранее спасибо за все ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...