0

私のプロジェクトでは、ユーザー間のソケットを使用して通信しており、ピクチャーボックスを相互に送信する必要があります。

これが私がpictureboxを使用する方法です:

 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);

しかし、pictureBox1を送信する方法がわかりませんでした。よろしくお願いします。よろしくお願いします。

4

3 に答える 3

1

メモリ ストリームを使用して、picturebox イメージをバイト配列に変換できます。

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 に答える