using System.Net.Sockets; using System.Text; using Microsoft.AspNetCore.Mvc; namespace StitchImg; [ApiController] [Route("api/image")] public class ImageController : ControllerBase { [HttpPost("generate")] public async Task Generate([FromBody] ImageSpecification specification) { var serverIp = "127.0.0.1"; var port = 8080; var tcpClient = new TcpClient(); await tcpClient.ConnectAsync(serverIp, port); NetworkStream networkStream = tcpClient.GetStream(); var writer = new BinaryWriter(networkStream); string rect = specification.CanvasRect; byte[] rectBytes = Encoding.UTF8.GetBytes(rect); writer.Write((ushort)rectBytes.Length); writer.Write(rectBytes); writer.Write(specification.CropOffset[0]); writer.Write(specification.CropSize[0]); writer.Write(specification.CropOffset[1]); writer.Write(specification.CropSize[1]); writer.Write(specification.OutputScale); writer.Flush(); return File( networkStream, "image/png"); } }