예제 #1
0
        public override ExecutionResult Run(IStepExecutionContext context)
        {
            var overlayOptions = _options.Overlay;

            if (!overlayOptions.ApplyOverlay)
            {
                return(ExecutionResult.Next());
            }
            Guard.Against.Null(SourceImage, nameof(SourceImage));

            var clut = _clutService.GetClut();

            OverlayImage = new Image <Rgba32>(SourceImage.Width, SourceImage.Height);

            var operation = new ApplyClutRowOperation(SourceImage, OverlayImage, clut);

            ParallelRowIterator.IterateRows(Configuration.Default, SourceImage.Bounds(), in operation);

            return(ExecutionResult.Next());
        }