// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // namespace ImageSharp.Processing { using System; using System.Threading.Tasks; using ImageSharp.PixelFormats; using SixLabors.Primitives; /// /// Encapsulates methods to alter the pixels of an image. /// /// The pixel format. public interface IImageProcessor where TPixel : struct, IPixel { /// /// 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; } /// /// Applies the process to the specified portion of the specified . /// /// The source image. Cannot be null. /// /// The structure that specifies the portion of the image object to draw. /// /// /// is null. /// /// /// doesnt fit the dimension of the image. /// void Apply(ImageBase source, Rectangle sourceRectangle); } }