Итак, я передаю источник изображения через сокет, и для этого мне нужно преобразовать его в форму 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;
}
Теперь моя проблема заключается в том, что после преобразования изображения его качество падает, а все части, которые изначально были прозрачными, становятся черными.
Заранее спасибо за все ответы.