Я делаю приложение для совместного использования удаленного рабочего стола, в котором я беру изображение рабочего стола и сжимаю его и отправляю его получателю. Чтобы сжать изображение, мне нужно преобразовать его в байт [].
В настоящее время я использую это:
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
Но мне это не нравится, потому что я должен сохранить его в ImageFormat, а также использовать ресурсы (Slow Down), а также создавать разные результаты сжатия. Я прочитал об использовании Marshal.Copy и memcpy, но я я не могу понять их.
Итак, есть ли другой способ достижения этой цели?