Как уменьшить размер изображения без потери качества
у меня есть настольное приложение c#, которое я создал для хранения изображений в базе данных SQL server
Проблема в том ,что код работает правильно и изображения хранятся разными способами, но с большим размером,поэтому я попытался изменить размер изображений перед сохранением,но мой метод изменения размера не помогает. вопрос ,
можно ли таким образом уменьшить размер без потери качества
Что я уже пробовал:
private void barBtnOpenPhotos_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { // there is where the user load's images OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "JPG|*.jpg|JPEG|*.jpeg|PNG|*.png|Tif|*.tif"; ofd.Multiselect = true; ofd.ShowDialog(); string[] files = ofd.FileNames; // here i create adatagridview to load multiple images DataGridViewImageColumn img = new DataGridViewImageColumn(); img.HeaderText = "ImageSelect"; img.Name = "PhotoImage"; img.ImageLayout = DataGridViewImageCellLayout.Stretch; datagridview_Images.Columns.Add(img); //here i view images inside datagridview_Images.Rows.Clear(); foreach (string filename in files) { Image image = Image.FromFile(filename); //this is the method that's resize images image = reesizeImage(image, new Size(1024, 576)); datagridview_Images.Rows.Add(image); } } private static Image reesizeImage(Image imgToResize, Size size) { int sourceWidth = imgToResize.Width; int sourceHeight = imgToResize.Height; float nPercent = 0; float nPercentW = 0; float nPercentH = 0; nPercentW = ((float)size.Width / (float)sourceWidth); nPercentH = ((float)size.Height / (float)sourceHeight); if (nPercentH < nPercentW) nPercent = nPercentH; else nPercent = nPercentW; int destWidth = (int)(sourceWidth * nPercent); int destHeight = (int)(sourceHeight * nPercent); Bitmap b = new Bitmap(destWidth, destHeight); Graphics g = Graphics.FromImage((Image)b); g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.DrawImage(imgToResize, 0, 0, destWidth, destHeight); g.Dispose(); return (Image)b; }