// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // using System.Threading.Tasks; namespace ImageProcessorCore.Processors { /// /// A delegate which is called as progress is made processing an image. /// /// The source of the event. /// An object that contains the event data. public delegate void ProgressEventHandler(object sender, ProgressEventArgs e); /// /// Encapsulates methods to alter the pixels of an image. /// public interface IImageProcessor { /// /// Event fires when each row of the source image has been processed. /// /// /// This event may be called from threads other than the client thread, and from multiple threads simultaneously. /// Individual row notifications may arrived out of order. /// event ProgressEventHandler OnProgress; /// /// Gets or sets the parallel options for processing tasks in parallel. /// ParallelOptions ParallelOptions { get; set; } /// /// Gets or sets a value indicating whether to compress /// or expand individual pixel colors the value on processing. /// bool Compand { get; set; } } }