//
// 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; }
}
}