private void updatePreview() { if ((_currentFormatPreset == FormatPreset.Original) && (_currentResolutionPreset == ResolutionPreset.Original)) { Optimized = Original; } else { if (_currentFormatPreset.FormatName == "PNG") { Optimized = Original.GenerateOptimized_PNG(_currentFormatPreset.ColorDepth, _currentResolutionPreset); } else if (_currentFormatPreset.FormatName == "JPG") { Optimized = Original.GenerateOptimized_JPEG(_currentFormatPreset.QualityLevel, _currentResolutionPreset); } else { // Original format, but scaled Optimized = Original.GenerateOptimized_JPEG(100, _currentResolutionPreset); } } pbOptimized.Image = Optimized.Image; pbOptimized.MaximumSize = new Size(Optimized.Width, Optimized.Height); lblOptimizedImage.Text = "Optimized Image: " + Optimized.GetShortInfo(); if (OptimizedChanged != null) { OptimizedChanged(this, new EventArgs()); } }
public ImageWorkUI(string imageFile, XmlNode relationshipXmlNode) : this() { Original = new ImageWithInfo(imageFile); Optimized = Original; this.RelationshipNode = relationshipXmlNode; // Automatic recommendation - set the upper max resolution to 1600x900 and change to 80% JPEG if ((Original.Width > 1600) || (Original.Height > 900)) { _currentResolutionPreset = ResolutionPreset.ComboBoxOptions.First(opt => (opt.Width == 1600) && (opt.Height == 900)); _currentFormatPreset = FormatPreset.ComboBoxOptions.First(opt => (opt.FormatName == "JPG") && (opt.QualityLevel == 80)); } cbResolutions.SelectedItem = _currentResolutionPreset; // Automatic recommendation - if pixel-byte density is higher than 20% and the format is PNG, convert to a 70% JPG if ((Original.BytesPerPixel > 0.2) && (Original.Type == ImageWithInfo.ImageTypes.Png) && (_currentFormatPreset == FormatPreset.Original)) { _currentFormatPreset = FormatPreset.ComboBoxOptions.First(opt => (opt.FormatName == "JPG") && (opt.QualityLevel == 70)); } // If we're scaling a JPG, try to preserve the quality (use 80% instead of 70%) //if ((_currentResolutionPreset != ResolutionPreset.Original) && (Original.Type == ImageWithInfo.ImageTypes.Jpg)) //{ // _currentFormatPreset = FormatPreset.ComboBoxOptions.First(opt => (opt.FormatName == "JPG") && (opt.QualityLevel == 80)); //} cbFormats.SelectedItem = _currentFormatPreset; // Set up originals pbOriginal.Image = Original.Image; pbOptimized.Image = Original.Image; // This will get updated with the optimized image when initialization is done pbOriginal.MaximumSize = new Size(Original.Width, Original.Height); pbOptimized.MaximumSize = pbOriginal.MaximumSize; int[] scaledSizes = Original.GetScaledSizeFromWidth(pbOriginal.Size.Width); pbOriginal.Size = new Size(scaledSizes[0], scaledSizes[1]); pbOptimized.Size = new Size(scaledSizes[0], scaledSizes[1]); // Populate info about the original file lblOriginalImage.Text = "Original Image: " + Original.GetShortInfo(); // Finished Initialized = true; }