/// <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);
/// <inheritdoc/> public Bitmap Apply(Bitmap bmp, RgbFltr filter) => _cache.GetOrCreate(filter, () => _rgb.Get(filter).Filter(bmp) );