Esempio n. 1
0
        /// <inheritdoc cref="ApplyRgbFilterEventArgs"/>
        public async Task OnEventHandler(object publisher, ApplyRgbFilterEventArgs e)
        {
            try
            {
                var filter = View.Dropdown;

                if (filter != RgbFltr.Unknown)
                {
                    var color = View.GetSelectedChannels();

                    var copy = await _locker.LockOperationAsync(
                        () => new Bitmap(ViewModel.Source)
                        ).ConfigureAwait(true);

                    Aggregator.PublishFromAll(publisher,
                                              new AttachBlockToRendererEventArgs(
                                                  block: new PipelineBlock(copy)
                                                  .Add <Bitmap, Bitmap>(
                                                      (bmp) => _factory.Get(color).Filter(bmp))
                                                  .Add <Bitmap, Bitmap>(
                                                      (bmp) => _factory.Get(filter).Filter(bmp))
                                                  )
                                              );
                }
            }
            catch (Exception ex)
            {
                View.Tooltip(Errors.ApplyRgbFilter);
            }
        }
 public IRgbFilter Get(RgbChannels channel)
 => _factory.Get(channel);
Esempio n. 3
0
 /// <inheritdoc/>
 public Bitmap Apply(Bitmap bmp, RgbFltr filter)
 => _cache.GetOrCreate(filter,
                       () => _rgb.Get(filter).Filter(bmp)
                       );