返回

当我第二次尝试将流转换为图像时,为什么会出现 ArgumentException?C#

发布时间:2022-07-01 17:50:26 181

我有一个小问题,我正在通过 TCP 连接在两台电脑之间进行视频传输,我所做的是截取屏幕截图,将其序列化并将其发送到另一台电脑,第一次它可以正常工作,但第二次当我得到“ArgumentException”并且程序不再工作时,尝试使用 BinaryFormatter 来完成它,但它很慢。

两种方法都被无限调用

public static void SerializeScreen(Stream stream, Bitmap Image)
{
    BinaryWriter binaryWriter = new BinaryWriter(stream);
    MemoryStream memory = new MemoryStream();
    Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
    binaryWriter.Write(memory.ToArray());
}

public static Image DeserializeScreen(Stream stream)
{
    byte[] Buffer = new byte[500000];
    BinaryReader binaryReader = new BinaryReader(stream);
    int Bytes;
    int LastPost = 0;
    do
    {
        Bytes = binaryReader.Read(Buffer, LastPost, Buffer.Length - LastPost);
        LastPost += Bytes;
    } while (Bytes > 0);
    MemoryStream memory = new MemoryStream(Buffer);
    //Here is where I get the exception
    return Image.FromStream(memory);
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
相关帖子