Det funkar om ja skickar liknande bild. Tex, ja visar up bilden helatiden (så om ja tar print screen och visar den, blri det ju sån där, Warp effekt).
Så om ja tar en liten ruta, iv säger 800x600, och gör så att inget rör sig där, då kan den skicka den bilden hela tiden.
Sen om ja rör någonting där, KAN det faila, eller inte, men det verkar faila rätt fort om det ändras häftigt i storleken antar jag.
Graphics graphics = Graphics.FromImage(holder);
graphics.CopyFromScreen(0, 0, 0, 0, new Size(1920, 1200), CopyPixelOperation.SourceCopy);
byte[] u = imageToByteArray(holder);
int c = 0;
int size = u.Length / 10;
buff = new byte[16120];
for (int i = 0; i < u.Length; i += size)
{
c = Math.Min(size, u.Length - i);
Array.Copy(u, i, buff, 0, c);
udpcap.Send(buff, c, adress.Address.ToString(), 1700);
}
Där är alltså hela sänd koden, den tar kort sätter in den i en bitmap (bitmapen görs i sänd koden innan while loopen, och den är lika stor som print screenen, alltså 1920x1200).
Sen gör ja bilden till en byte array, skickar den i 10 bitar, sen pusslar jag ihop den.
databyte = new byte[1619200];
int i = 0;
for (int q = 0; q < 11; ++q)
{
byte[] data = udpcap.Receive(ref adress);
Array.Copy(data, 0, databyte, i, data.Length);
i += data.Length;
}
pictureBox1.BackgroundImage = byteArrayToImage(databyte);
Jag får error i
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
Additional information: Parameter is not valid.
För den har förmodligen failat med byte arrayen, och försöker göra en bild av, nånting som inte är en bild.
Skulle gärna vilja testa att köra på och ignorera koden, men vet inte om man kan göra det?