我正在制作远程桌面共享应用程序,在该应用程序中我捕获桌面图像并将其压缩并将其发送到接收器。要压缩图像,我需要将其转换为字节 []。
目前我正在使用这个:
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 中,这也可能会占用资源(减速)以及产生不同的压缩结果。我已经阅读了使用 Marshal.Copy 和 memcpy 但我无法了解他们。
那么有没有其他方法可以实现这个目标呢?