/// <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
        }
示例#2
0
 public ImageProcessingService(
     ILogger <ImageProcessingService> logger,
     IOptions <ImageProcessingSettings> imageProcessingOptions,
     IImageUploadService imageUploadService)
 {
     _logger = logger;
     _imageProcessingSettings = imageProcessingOptions.Value;
     _imageUploadService      = imageUploadService;
 }
示例#3
0
        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;
                }
            });
        }