/// <summary> /// Gets relevant app setting from appSettings.json and maps to POCO classes and configures singleton for DI /// </summary> /// <param name="services"></param> /// <param name="configuration"></param> public static void ConfigureImageProcessingSettings(this IServiceCollection services, IConfiguration configuration) { var settings = new ImageProcessingSettings(); configuration.Bind("ImageProcessingSettings", settings); services.AddSingleton <ImageProcessingSettings>(settings); // add singleton for DI }
public ImageProcessingService( ILogger <ImageProcessingService> logger, IOptions <ImageProcessingSettings> imageProcessingOptions, IImageUploadService imageUploadService) { _logger = logger; _imageProcessingSettings = imageProcessingOptions.Value; _imageUploadService = imageUploadService; }
private async void UpdateImagePreview() { if (this.updateImagePreview) { if (this.imageProcessingPreviewForm != null) { if (this.imageProcessingPreviewForm.Visible) { var imageProcessingSettings = new ImageProcessingSettings(); imageProcessingSettings.BrightnessAdjustment = this.imgProcBrightnessSlider.Value; imageProcessingSettings.ContrastAdjustment = this.imgProcContrastSlider.Value; imageProcessingSettings.SaturationAdjustment = this.imgProcSaturationSlider.Value; imageProcessingSettings.SharpnessAdjustment = this.imgProcSharpnessSlider.Value; imageProcessingSettings.RedAdjustment = this.imgProcRedSlider.Value; imageProcessingSettings.GreenAdjustment = this.imgProcGreenSlider.Value; imageProcessingSettings.BlueAdjustment = this.imgProcBlueSlider.Value; await this.imageProcessingPreviewForm.UpdateImage(imageProcessingSettings); } } } }
public async Task UpdateImage(ImageProcessingSettings imageProcessingSettings) { Bitmap tempBitmap = tempBitmap = (Bitmap)this.originalPreviewImage.Clone();; await Task.Run(() => { ImageProcessingFilters imageProcessingFilters = new ImageProcessingFilters(); var filters = imageProcessingFilters.GetFilterList(imageProcessingSettings); foreach (IInPlaceFilter filter in filters) { lock (tempBitmap) { filter.ApplyInPlace(tempBitmap); } } lock (this.previewPictureBox) { this.previewPictureBox.Image = tempBitmap; } }); }