/// <summary> /// Adjusts HSL (Hue-Saturation-Lightness) balance using memory-friendly Pipeline API /// </summary> private static void AdjustHslMemoryFriendly() { using (var reader = ImageReader.Create("../../../../_Input/Chicago.jpg")) using (var adjustHsl = new AdjustHsl(0.2f, -0.1f, 0.1f)) using (var writer = ImageWriter.Create("../../../../_Output/AdjustHslMemoryFriendly.jpg")) { Pipeline.Run(reader + adjustHsl + writer); } }
public static void ProcessImage(IProcessorItem item) { using (ImageReader reader = ImageReader.Create(item.Source)) using (var contrast = new Contrast(item.Correction.Contrast)) using (var levels = new Levels(item.Correction.Black, item.Correction.White, item.Correction.Shadow, item.Correction.Midpoint, item.Correction.Highlight, HistogramMode.Luminosity)) using (var color = new ChannelBalance()) using (var rotate = new Rotate(item.Correction.Rotate)) using (var saturation = new AdjustHsl(0f, item.Correction.Saturation, 0f)) using (var writer = new JpegWriter(Path.ChangeExtension(item.Destination, "jpg"), 99)) { color.Addends = new float[3] { item.Correction.Blue, item.Correction.Green, item.Correction.Red }; color.Multipliers = new float[3] { 1f, 1f, 1f }; writer.UseSubsampling = false; Pipeline.Run(reader + contrast + levels + color + rotate + saturation + writer); } }