public void Execute(PipelineContext context, MagickImage magickImage) { ResolvedData maskFileInfo = context.DataResolver.ResolvedData("masks", context.ResolvedData, Config.Mask.Pattern); if (Config.Original) { PipelineContext contextClone = context.Clone(); contextClone.AppendPath(OriginalDirectory); contextClone.Next(magickImage); } if (maskFileInfo != null) { using (MagickImage maskMagickImage = maskFileInfo.ToMagickImage()) { magickImage.SetWriteMask(maskMagickImage); } } foreach (Modulation modulate in Config.Modulation) { using (MagickImage modulatedMagickImage = (MagickImage)magickImage.Clone()) { PipelineContext contextClone = context.Clone(); contextClone.AppendPath($"{modulate.Name}"); contextClone.AppendPrefix(modulate.Prefix ?? modulate.Name.Substring(0, 1)); modulatedMagickImage.Modulate(modulate.Brightness, modulate.Saturation, modulate.Hue); modulatedMagickImage.RemoveWriteMask(); contextClone.Next(modulatedMagickImage); } } }
public void Execute(PipelineContext context, MagickImage magickImage) { foreach (MagickGeometry dimensions in Config.Geometries) { using (MagickImage dimensionsMagickImage = (MagickImage)magickImage.Clone()) { PipelineContext contextClone = context.Clone(); contextClone.AppendPath(dimensions.ToString()); if (dimensions.Width < 0 || dimensions.Height < 0) { Logger.Fatal("The height and width of dimensions can not be negative."); } if (dimensions.Width == 0 && dimensions.Height == 0) { Logger.Fatal("Both height and width in the dimensions configuration were 0, please specify at least one."); } dimensionsMagickImage.FilterType = Config.Filter; dimensionsMagickImage.Resize(dimensions); contextClone.Next(dimensionsMagickImage); } } }