/// <summary> /// Resizes image and maintains original sharpness using memory-friendly Pipeline API (like Bicubic Sharper mode in Photoshop) /// </summary> private static void ResizeSharpMemoryFriendly() { using (var reader = ImageReader.Create("../../../../_Input/Chicago.jpg")) using (var resize = new Resize(320, 0, ResizeInterpolationMode.High)) using (var unsharpMask = new UnsharpMask(0.35f, 1, 0)) using (var writer = ImageWriter.Create("../../../../_Output/ResizeSharpMemoryFriendly.jpg")) { Pipeline.Run(reader + resize + unsharpMask + writer); } }
/// <summary> /// Initializes a new instance of the <see cref="TextProcessingSettings"/> class. /// </summary> /// <param name="size">The initial output size.</param> /// <param name="font">The initial font.</param> public TextProcessingSettings(Size size, Font font) { this.calculateCharacterSize = true; this.isBlackTextOnWhite = !Variables.Instance.InvertImage; this.isFixedWidth = true; this.IsGeneratedRamp = Variables.Instance.UseGeneratedRamp; this.ramp = "MMMMMMM@@@@@@@WWWWWWWWWBBBBBBBB000000008888888ZZZZZZZZZaZaaaaaa2222222SSSSSSSXXXXXXXXXXX7777777rrrrrrr;;;;;;;;iiiiiiiii:::::::,:,,,,,,......... "; this.sharpen = Variables.Instance.Sharpen; this.sharpenFilter = new Sharpen(); this.stretch = Variables.Instance.Stretch; this.stretchFilter = new Stretch(); this.unsharp = Variables.Instance.UnsharpMask; this.unsharpFilter = new UnsharpMask(3); this.filterChanged = true; if (Variables.Instance.CurrentSelectedValidCharacters > -1) { this.validCharacters = (string)Variables.Instance.DefaultValidCharacters[Variables.Instance.CurrentSelectedValidCharacters]; } else { this.validCharacters = Variables.Instance.CurrentCharacters; } this.Size = size; this.Font = font; // TODO: Move these to ResetVariables and set widgets from events this.brightness = Variables.Instance.DefaultTextBrightness; this.contrast = Variables.Instance.DefaultTextContrast; this.dithering = Variables.Instance.DefaultDitheringLevel; this.ditheringRandom = Variables.Instance.DefaultDitheringRandom; this.flipHorizontally = Variables.Instance.FlipHorizontally; this.flipVertically = Variables.Instance.FlipVertically; this.levels = new LevelsSettings(Variables.Instance.DefaultMinimumLevel, Variables.Instance.DefaultMedianLevel, Variables.Instance.DefaultMaximumLevel); }