/// <inheritdoc cref="ApplyColorMatrixEventArgs"/> public async Task OnEventHandler(object publisher, ApplyColorMatrixEventArgs e) { try { var filter = View.Dropdown; if (filter != ClrMatrix.Unknown) { var copy = await _locker.LockOperationAsync( () => new Bitmap(ViewModel.Source) ).ConfigureAwait(true); Aggregator.PublishFromAll(publisher, new AttachBlockToRendererEventArgs( block: new PipelineBlock(copy) .Add <Bitmap, Bitmap>( (bmp) => _provider.Apply(bmp, filter)) ) ); } } catch (Exception ex) { View.Tooltip(Errors.ApplyColorMatrix); } }
/// <inheritdoc cref="ApplyRgbChannelFilterEventArgs"/> public async Task OnEventHandler(object publisher, ApplyRgbChannelFilterEventArgs e) { try { 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) => _provider.Apply(bmp, color)) ) ); } catch (Exception ex) { View.Tooltip(Errors.ApplyColorFilter); } }