相关疑难解决方法(0)

将Image转换为Byte数组的最快方法

我正在制作远程桌面共享应用程序,我在其中捕获桌面图像并压缩它并将其发送到接收器.要压缩图像,我需要将其转换为byte [].

目前我正在使用这个:

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;
}
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它,因为我必须将它保存在ImageFormat中,并且还可能耗尽资源(慢速下降)以及产生不同的压缩结果.我已阅读使用Marshal.Copy和memcpy但我无法了解他们.

那么有没有其他方法来实现这一目标?

c# memory bytearray bitmap

103
推荐指数
5
解决办法
18万
查看次数

标签 统计

bitmap ×1

bytearray ×1

c# ×1

memory ×1