public CompressOptions(short sliderLevel, QualitiLevelCheckBox qLevelCheckBox, UserMod userMod, OutputMod outMode) { SliderLevel = sliderLevel; QualitiLevelCheckBox = qLevelCheckBox; UserMod = userMod; OutputMod = outMode; }
/// <summary> /// Used to evaluate the quality levels of images for our "Simple Mode" /// TODO: Add simple Mode Functionality /// </summary> /// <param name="filePath">a path to a file </param> /// <param name="qualitiLevelCheckBox">Checkbox parameter ( High Medium Low )</param> /// <returns>the qualityvalue for an image</returns> public short EvaluateQualityLevel(string filePath, QualitiLevelCheckBox qualitiLevelCheckBox) { MagickImageInfo image = new MagickImageInfo(filePath); //calc resulution double resulution = (1000000.0 / (image.Height * image.Width)); Console.WriteLine(@"Resulution: " + resulution); //get File Size long fileSize = new FileInfo(filePath).Length; if (qualitiLevelCheckBox == QualitiLevelCheckBox.High) { Console.WriteLine(@"Resulution: " + resulution); // >= 20Mpix if (resulution >= 20) { if (fileSize >= 5) { return(55); } if (fileSize >= 2) { return(70); } if (fileSize >= 1) { return(85); } else { return(95); } } // >= 10Mpix if (resulution >= 10) { if (fileSize >= 4) { return(45); } if (fileSize >= 2) { return(70); } if (fileSize >= 1) { return(79); } if (fileSize <= 0.75) { return(100); } } // >= 5Mpix if (resulution >= 5) { if (fileSize >= 4) { return(45); } if (fileSize >= 2) { return(70); } if (fileSize >= 1) { return(79); } if (fileSize <= 0.75) { return(100); } } if (resulution <= 4) { return(76); } if (resulution <= 3) { return(80); } } // Calulate with factor if (qualitiLevelCheckBox == QualitiLevelCheckBox.Middle) { double middleRes = ((fileSize * 1000) / resulution); Console.WriteLine(@"middle middle middle " + middleRes); Console.Write(@"FileSize: " + fileSize + @" "); return((short)middleRes); } if (qualitiLevelCheckBox == QualitiLevelCheckBox.Low) { Console.WriteLine(@"Low Low Low Low " + (short)(resulution * 5) / (fileSize / 100)); Console.Write(@"FileSize: " + fileSize + @" "); return((short)(2 * ((110 * resulution) / fileSize))); } return(0); }