0

在我的项目中,我在用户之间使用套接字进行通信,并且我必须将一个图片框发送给另一个。

这是我如何使用图片框:

 PictureBox pictureBox1 = new PictureBox();
        ScreenCapture sc = new ScreenCapture();
        // capture entire screen, and save it to a file
        Image img = sc.CaptureScreen();
        // display image in a Picture control named pictureBox1
        pictureBox1.Image = img;

我使用我的套接字发送这样的:

byte[] buffer = Encoding.ASCII.GetBytes(textBox1.Text);
            s.Send(buffer);

但我不知道如何发送图片框1。希望您能提供帮助,在此先感谢。

4

3 回答 3

1

您可以使用内存流将图片框图像转换为字节数组:

MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
s.Send(ms.ToArray());
于 2013-01-04T04:03:22.260 回答
0
`public byte[] PictureBoxImageToBytes(PictureBox picBox) 
{
     if ((picBox != null) && (picBox.Image != null))
    {
         Bitmap bmp = new Bitmap(picBox.Image);
         System.IO.MemoryStream ms = new System.IO.MemoryStream();

         bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);

           byte[] buff = ms.ToArray();

         ms.Close();
         ms.Dispose();
         return buff;
    }
     else
    {
         return null;
    }
}`

来自http://www.codyx.org/snippet_transformer-image-picturebox-tableau-bytes_496.aspx

于 2013-01-04T04:04:02.727 回答
0

ToArray()发送并接收然后转换为image

   public static Image ByteArrayToImage(byte[] byteArrayIn)
    {
        var ms = new MemoryStream(byteArrayIn);
        var returnImage = Image.FromStream(ms);
        return returnImage;
    }
于 2013-01-04T04:16:32.997 回答