因此,即时通讯通过套接字传输图像的源,为了做到这一点,我必须将其转换为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;
}
现在,我的难题是,将图像转换回原来的图像后,图像质量下降,所有原来透明的部分都变黑了。
提前感谢所有答案。