рдПрдХ рдлреБрд░реНрддреАрд▓рд╛ рд░рд┐рдореЛрдЯ рд▓рд┐рдЦрдирд╛ - рдбреЗрд╕реНрдХрдЯреЙрдк рдХреНрд▓рд╛рдЗрдВрдЯ C # рдФрд░ XNA рдореЗрдВ

рдирдорд╕реНрддреЗ, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ C # + XNA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдореЛрдЯ - рдбреЗрд╕реНрдХрдЯреЙрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ


рдЗрд╕ рд╡рд┐рд╖рдп рдиреЗ рдореБрдЭреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред

рдереЛрдбрд╝рд╛ рдЦреБрдж рд╕реЗ


рдореИрдВрдиреЗ рдЙрд╕ рд▓реЗрдЦ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд▓реЗрдЦрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рджреВрд╕рд░реЗ рд▓реЗрдЦ рдореЗрдВ рдпреВрдбреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд░рд╕реНрде рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рд▓реЗрдЦ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛ред рдЬреАрдбреАрдЖрдИ рдХреА рдзреАрдореА рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рдХрд╛рд░рдг, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗрд╡рд▓ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛрд░ 2 рдбреБрдУ 2.66 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬ, рдПрдирд╡реАрдбрд┐рдпрд╛ рдЬреАрдлреЛрд░реНрд╕ 9600 рдЬреАрдЯреА рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реА рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ XNA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЪрдпрди


рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЯреАрд╕реАрдкреА рдХреЛ рдЪреБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рдХреЗ рд╕рд╛рде рдХрдо рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпреВрдбреАрдкреА рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдХреЛрдИ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд▓рд╛ рдмреНрд▓рд╛ рдмреНрд▓рд╛ рд▓реЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ ... рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпреВрдбреАрдкреА рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рдХреНрдпреЛрдВ рд╣реИрдВ? рдЙрддреНрддрд░ рд╕рд░рд▓ рд╣реИ - рдПрдХ рдпреВрдбреАрдкреА рд╕рдВрджреЗрд╢ 65,507 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдФрд╕рддрди 130,000 рдмрд╛рдЗрдЯреНрд╕ (1366x768 рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП), рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдХреЗрдЬ рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:
1) рдПрдХ рдмреИрд╕рд╛рдЦреА рдмрдирд╛рдПрдБ
2) рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдБ

1) рдЬрдм рд╕реЗ рдореИрдВ рдЖрд▓рд╕реА рд╣реВрдВ, рдореИрдВрдиреЗ рдПрдХ рдмреИрд╕рд╛рдЦреА рдЪреБрдиреАред рдмреИрд╕рд╛рдЦреА рдПрдХ рдмрдбрд╝реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдХрдИ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕рдВрджреЗрд╢ рдореЗрдВ рдЙрди рдЯреБрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦреЗрдВ рдЬреЛ рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред рдореИрдВрдиреЗ рдПрдХ рдмреИрд╕рд╛рдЦреА рдХрд╣рд╛, рдХреНрдпреЛрдВрдХрд┐, рдкрд╣рд▓рд╛ рд╕рдВрджреЗрд╢ рдЦреЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд░рдХ рдореЗрдВ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рдЫрд╡рд┐ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рдЧреЛрдВрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЫрд╡рд┐ рдХрд┐рддрдиреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЯреВрдЯреА рд╣реБрдИ рд╣реИ)ред

2) рдЖрдк рд╕реНрдХреНрд░реАрди рдХреЛ рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдпрд╛рдж рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╡реИрд╕реЗ, рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдЕрднреНрдпрд╛рд╕


рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рддрд╛ рд╣реВрдБред рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд╕реЗред рд╣рдо рдЕрдкрдиреА рд╕реНрдХреНрд░реАрди рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд░рд┐рдореЛрдЯ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рднреЗрдЬреЗрдВрдЧреЗред рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ред

рд▓реЙрдиреНрдЪ рдмрд┐рдВрджреБ рд╣рдорд╛рд░рд╛ рд░рди () рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдЧрд╛ред
public void Run() { Load(); //       udpClient = new UdpClient(); Bitmap BackGround = new Bitmap(width, height); Graphics graphics = Graphics.FromImage(BackGround); while (true) { //    graphics.CopyFromScreen(0, 0, 0, 0, new Size(width, height)); //       byte [] bytes = ConvertToByte(BackGround); List<byte[]> lst = CutMsg(bytes); for (int i = 0; i < lst.Count; i++) { //    udpClient.Send(lst[i], lst[i].Length, ipEndPoint); } } } 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд▓реЛрдб () рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд▓реВрдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реАрди рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИ, рдЗрд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ, рдореЗрд░реА рдмреИрд╕рд╛рдЦреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдПрдХ рд╕рдВрджреЗрд╢ рдХреЛ рдХрдИ рдЙрдк рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ - CutMsg (рдмрд╛рдЗрдЯреНрд╕)), рд╕рднреА рдкреИрдХреЗрдЯ рднреЗрдЬреЗрдВред

рд▓реЛрдб () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рджреЛ рдкрдВрдХреНрддрд┐рдпрд╛рдБ ip.txt рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝реА рдЬрд╛рдПрдВрдЧреА ред рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдЖрдИрдкреА рдкрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдмрдВрджрд░рдЧрд╛рд╣ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЗрд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕реНрдХреНрд░реАрди рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдХреА рдПрдХ рд░рд╕реАрдж рд╣реЛрдЧреАред

рд░реВрдкрд╛рдВрддрд░рдг рд╕рдорд╛рд░реЛрд╣
 private byte [] ConvertToByte(Bitmap bmp) { MemoryStream memoryStream = new MemoryStream(); //       Jpeg bmp.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); return memoryStream.ToArray(); } 


рдФрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмреИрд╕рд╛рдЦреА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
 private List<byte[]> CutMsg(byte[] bt) { int Lenght = bt.Length; byte[] temp; List<byte[]> msg = new List<byte[]>(); MemoryStream memoryStream = new MemoryStream(); //    2    memoryStream.Write( BitConverter.GetBytes((short)((Lenght / 65500) + 1)), 0, 2); //     memoryStream.Write(bt, 0, bt.Length); memoryStream.Position = 0; //      -   while (Lenght > 0) { temp = new byte[65500]; memoryStream.Read(temp, 0, 65500); msg.Add(temp); Lenght -= 65500; } return msg; } 

рдореИрдВ рдбреЗрдЯрд╛ рдХреЛ 65500 рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ (рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рд▓рд┐рдпрд╛) рдФрд░ рдЗрд╕реЗ рдмрд╛рдЗрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд▓рд┐рдЦ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕ рд╢реАрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реВрдВред

рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛрдб


рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдореИрдВрдиреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдмреЛрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдореБрдЦреНрдп рдмрд╛рдд рд▓рд┐рдЦреВрдВрдЧрд╛ред

рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ред
 int countErorr = 0; private void AsyncReceiver() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 0); while (true) { try { MemoryStream memoryStream = new MemoryStream(); byte[] bytes = udpClient.Receive(ref ep); memoryStream.Write(bytes, 2, bytes.Length - 2); int countMsg = bytes[0] - 1; if (countMsg > 10) throw new Exception("  "); for (int i = 0; i < countMsg; i++) { byte[] bt = udpClient.Receive(ref ep); memoryStream.Write(bt, 0, bt.Length); } GetData(memoryStream.ToArray()); memoryStream.Close(); } catch { countErorr++; } } } 

рд╣рдо рд▓реВрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдореЗрдВ рдкрд╣рд▓рд╛ рдкреИрдХреЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдмрд╛рдЗрдЯ рдкрдврд╝реЗрдВ (рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕ рдмрд╛рдЗрдЯ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ), рдпрджрд┐ рд╕рдВрджреЗрд╢ 10 рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рд▓рд╛ рдкреИрдХреЗрдЯ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдиреБрдХрд╕рд╛рди рдХрд╛рдЙрдВрдЯрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рд╕рднреА рд╕рдВрджреЗрд╢ рдорд┐рд▓рддреЗ рд╣реИрдВ - рд╣рдо рдЗрд╕реЗ рдПрдХ рдореЗрдВ рдЧреЛрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЧреЗрдЯрдбрд╛рдЯрд╛ рдЗрд╡реЗрдВрдЯ (рдмрд╛рдЗрдЯ []) рдмрдврд╝рд╛рдПрдВред

GetData (рдмрд╛рдЗрдЯ []) рдореЗрдВ рд╣рдо Texture2D рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
 private void Receive_GetData(byte[] Date) { BackGround = ConvertToTexture2D(Date); } private Texture2D ConvertToTexture2D(byte[] bytes) { MemoryStream memoryStream = new MemoryStream(bytes); System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromStream(memoryStream); //    .png,  Texture2D    memoryStream = new MemoryStream(); bmp.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png); //    Texture2D return Texture2D.FromStream(GraphicsDevice, memoryStream); } 


рдЖрдк рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рд▓рд┐рдЦрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдирд┐рд░рд╛рд╢рд╛ рди рдХрд░реЗрдВред

рд╕рд╛рд░рд╛рдВрд╢ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖


рдирддреАрдЬрддрди, рдЬрдм "рдкреНрд░реЗрд╖рдХ" рдФрд░ "рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛" рдПрдХ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдФрд░ рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдиреБрдХрд╕рд╛рди рд╣реЛрддреЗ рд╣реИрдВ (30 - 90 рдиреБрдХрд╕рд╛рди), рдЬрдм "рдкреНрд░реЗрд╖рдХ" рдореЗрд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ "рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛" рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рдиреБрдХрд╕рд╛рди рдиреНрдпреВрдирддрдо рд╣реЛрддреЗ рд╣реИрдВ (10 - 10) 15 рдиреБрдХрд╕рд╛рди)ред рджреЛрдиреЛрдВ рдХрдВрдкреНрдпреВрдЯрд░ (рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдореЗрд░рд╛) 54 рдПрдордмреАрдкреАрдПрд╕ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╡рд╛рдИ-рдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рдПрдХ рдкрд┐рдВрдЧ рд╣реИ (рд▓рдЧрднрдЧ 250 рдПрдордПрд╕ред) - рдпрд╣ рдореБрдЭреЗ рдЯреАрдо рд╡реНрдпреВрдЕрд░ рдкрд┐рдВрдЧ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдиреБрдХреВрд▓рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдмреИрд╕рд╛рдЦреА рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдорд┐рд▓рддрд╛ рд╣реИред

рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди


рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХрд╛ рдХрдВрдкреНрдпреВрдЯрд░ (рдореЗрд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛)


рдиреБрдХрд╕рд╛рди рдХреНрдпрд╛ рджрд┐рдЦрддрд╛ рд╣реИ?


рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкреВрд░рд╛ рдХрд░реВрдВрдЧрд╛, рдпрд╛ рдмрд▓реНрдХрд┐, рдЗрд╕реЗ рджреВрд░ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдФрд░ рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рд░рд┐рд╕реАрд╡рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдкреНрд░реЗрд╖рдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдЪрд┐рддреНрд░ рднреЗрдЬреЗрдВ)

PS I рдиреЗ github.com/Luchanso/remote-desktop github рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛

Source: https://habr.com/ru/post/In142617/


All Articles