//[Authorize] public IActionResult Upload([FromForm] NewUploadImageInput model) { Console.WriteLine(); var ts = DateTime.Now; Console.WriteLine("upload request started" + ts.ToString()); if (!ModelState.IsValid) { return(BadRequest("параметры запроса некорректные")); } var res = service.UploadPicture(model); Console.WriteLine("upload request ended " + (DateTime.Now - ts).TotalMilliseconds); return(Ok(new { result = res })); }
public bool UploadPicture(NewUploadImageInput input) { try { var image = Image.FromStream(input.Img.OpenReadStream(), true, true); var s = new Size(image.Width, image.Height); var bmp = new Bitmap(image, s); byte[] fileBytes; if (image.Width > image.Height) { biggestside = image.Width; prop = biggestside / image.Height; var newheight = 720 / prop; needside = Convert.ToInt32(newheight); if (biggestside > 720) { var ts = DateTime.Now; Console.WriteLine("Image compressing started at " + ts.ToString()); var bmp2 = new Bitmap(image, new Size(720, needside)); var rectangle = new Rectangle(0, 0, bmp2.Width, bmp2.Height); var bitmapData = bmp2.LockBits(rectangle, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); bmp2.UnlockBits(bitmapData); using (var ms = new MemoryStream()) { bmp2.Save(ms, ImageFormat.Jpeg); fileBytes = ms.ToArray(); } var result = mapper.Map <NewUploadImageInputByte>(input, opt => opt.Items["Img"] = fileBytes); //var result = new NewUploadImageInputByte //{ // AppCode = input.AppCode, // TImageprev = input.TImageprev, // Img = fileBytes //}; Console.WriteLine("Image compressing done/ elapsed " + (DateTime.Now - ts).TotalMilliseconds); ts = DateTime.Now; Console.WriteLine("uploading image done. elapsed " + (DateTime.Now - ts).TotalMilliseconds); var resObj = repo.UploadPicture(result); return(resObj == "1"); } else { using (var ms = new MemoryStream()) { bmp.Save(ms, ImageFormat.Png); fileBytes = ms.ToArray(); } var result = mapper.Map <NewUploadImageInputByte>(input, opt => opt.Items["Img"] = fileBytes); //var result = new NewUploadImageInputByte //{ // AppCode = input.AppCode, // TImageprev = input.TImageprev, // Img = fileBytes //}; var resObj = repo.UploadPicture(result); return(resObj == "1"); } } else if (image.Height > image.Width) { biggestside = image.Height; prop = biggestside / image.Width; var newweight = 720 / prop; needside = Convert.ToInt32(newweight); if (biggestside > 720) { var bmp3 = new Bitmap(image, new Size(needside, 720)); var rectangle = new Rectangle(0, 0, bmp3.Width, bmp3.Height); var bitmapData = bmp3.LockBits(rectangle, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); bmp3.UnlockBits(bitmapData); using (var ms = new MemoryStream()) { bmp3.Save(ms, ImageFormat.Jpeg); fileBytes = ms.ToArray(); } var result = mapper.Map <NewUploadImageInputByte>(input, opt => opt.Items["Img"] = fileBytes); //var result = new NewUploadImageInputByte //{ // AppCode = input.AppCode, // TImageprev = input.TImageprev, // Img = fileBytes //}; var resObj = repo.UploadPicture(result); return(resObj == "1"); } else { using (var ms = new MemoryStream()) { bmp.Save(ms, ImageFormat.Jpeg); fileBytes = ms.ToArray(); } var result = mapper.Map <NewUploadImageInputByte>(input, opt => opt.Items["Img"] = fileBytes); //var result = new NewUploadImageInputByte //{ // AppCode = input.AppCode, // TImageprev = input.TImageprev, // Img = fileBytes //}; var resObj = repo.UploadPicture(result); return(resObj == "1"); } } else { using (var ms = new MemoryStream()) { bmp.Save(ms, ImageFormat.Jpeg); fileBytes = ms.ToArray(); } var result = mapper.Map <NewUploadImageInputByte>(input, opt => opt.Items["Img"] = fileBytes); //var result = new NewUploadImageInputByte //{ // AppCode = input.AppCode, // TImageprev = input.TImageprev, // Img = fileBytes //}; var resObj = repo.UploadPicture(result); return(resObj == "1"); } } catch (Exception) { return(false); } }