Как обрезать, сжать изображение в jquery, MVC без потери качества
я работаю над приложением mvc, в котором я загружаю изображение, сначала обрабатываю изображение, а затем загружаю изображение на сервер. когда я обрезаю изображение и передаю его в коде позади, размер изображения увеличивается в размере. пример. если я выберу изображение размером 50 КБ и загружу его, то его размер увеличится на 1 МБ до более чем 1 МБ.
Что я уже пробовал:
1)
public JsonResult UploadEventImage(string uploadedFile){
Bitmap bmp= null; byte[] byteBuffer = Convert.FromBase64String(uploadedFile.Replace("data:image/png;base64,", "")); MemoryStream memoryStream = new MemoryStream(byteBuffer); memoryStream.Position = 0; bmp= (Bitmap)Bitmap.FromStream(memoryStream); memoryStream.Close(); memoryStream = null; byteBuffer = null; if (bmp!= null) { string fileName = "image1.jpg"; fileName = "~/Content/img/" + fileName; bmp.Save(Server.MapPath(fileName), System.Drawing.Imaging.ImageFormat.Bmp); } } 2) public JsonResult UploadEventImage(string uploadedFile){ <pre>Bitmap bmp= null; byte[] byteBuffer = Convert.FromBase64String(uploadedFile.Replace("data:image/png;base64,", "")); MemoryStream memoryStream = new MemoryStream(byteBuffer); memoryStream.Position = 0; bmp= (Bitmap)Bitmap.FromStream(memoryStream); Image img = bmp; Bitmap resizedImg = new Bitmap(img.Width, img.Height); double ratioX = (double)resizedImg.Width / (double)img.Width; double ratioY = (double)resizedImg.Height / (double)img.Height; double ratio = ratioX < ratioY ? ratioX : ratioY; int newHeight = Convert.ToInt32(img.Height * ratio); int newWidth = Convert.ToInt32(img.Width * ratio); using (Graphics g = Graphics.FromImage(resizedImg)) { g.DrawImage(img, 0, 0, newWidth, newHeight); } if (bmp!= null) { string fileName = "image1.jpg"; fileName = "~/Content/img/" + fileName; resizedImg.Save(Server.MapPath(fileName)); } }