このコードを作成してスクリーンショットを撮り、バイトに変換してクライアントに送信しましたが、クライアントがそれを受信すると半分になります。
スクリーンショットをバイトに変換し、クライアントコードに送信するコードは次のとおりです。
public void SendImage()
{
int ScreenWidth = Screen.GetBounds(new Point(0, 0)).Width;
int ScreenHeight = Screen.GetBounds(new Point(0, 0)).Height;
Bitmap bmpScreenShot = new Bitmap(ScreenWidth, ScreenHeight);
Graphics gfx = Graphics.FromImage((Image)bmpScreenShot);
gfx.CopyFromScreen(0, 0, 0, 0, new Size(ScreenWidth, ScreenHeight));
bmpScreenShot.Save(Application.StartupPath + "/ScreenShot.jpg", ImageFormat.Jpeg);
byte[] image = new byte[10000*10000*10];
bmpScreenShot = ResizeBitmap(bmpScreenShot, 300, 300);
image = ImageToByte(bmpScreenShot);
sck.Send(image, 0, image.Length, 0);
}
そして、ここに受信コードがあります
public void ReceiveImage()
{
if (sck.Connected)
{
{
NetworkStream stream = new NetworkStream(sck);
byte[] data = new byte[10000 * 10000 * 3];
string receive = string.Empty;
Int32 bytes = stream.Read(data, 0, data.Length);
pictureBox1.Image = byteArrayToImage(data);
}
}
}