用socket网络传输图像,单独显示没有问题,就是传输的时候一直不成功,总是提示对象当前正在其他地方使用,要调用ReleaseHDC方法,但是我从来没有进行相关的操作,好奇怪,求高手解决!img已经取出来的bitmap图片,代码如下:
               bmSave = img;
                bmSave.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                byte[] trr = ms.ToArray();
                netStream.Write(trr, 0, trr.Length);
                ms.Flush();
                netStream.Flush();

解决方案 »

  1.   


    不知道你的具体意思。bitmap不能很好地去搞什么Save到MemoryStram再读出。你可以把对象直接二进制序列化,然后再二进制反序列化。不用纠结于Save这类方法。
      

  2.   

    感谢楼上的回答,如果不通过bmSave.Save来传输图像,那怎么传输图像!用Socket传输图像,现在我是将图片保存为流的方式,然后在传输,!
      

  3.   

    像楼上说的那样,如果二进制序列化和二进制反序列化以后,也要调用到**。save的方法,还是一样有错误!
      

  4.   


    晕死!二进制序列化和凡序列针对Bitmap,怎么可能扯上Save的关系呢?
      

  5.   

    二进制序列化和凡序列针对Bitmap  -->  二进制序列化和反序列针对Bitmap二进制凡序列化之后,你都直接可以正确地得到一个内存中的图片对象,用于之后的操作,还要绕什么弯呢?我怀疑你根本没有动手试过。
      

  6.   

    感谢楼上的回答,我是真的动手试了,您看是不是这样序列化 
                Bitmap I = (Bitmap)eventArgs.Frame.Clone();
                //pictureBox1.Image = I;
                //序列化  
                System.IO.MemoryStream M = new System.IO.MemoryStream();
                I.Save(M, ImageFormat.Jpeg);但是就是调用这个I.save时出错误啊,
    楼上看看这个代码是否有问题,我运行时老是出现,要调用ReleaseHDC方法这个异常!