public static FigletFont Parse(IEnumerable<string> fontLines) { if (fontLines == null) { throw new ArgumentNullException(nameof(fontLines)); } var font = new FigletFont() { Lines = fontLines.ToArray() }; var configString = font.Lines.First(); var configArray = configString.Split(' '); font.Signature = configArray.First().Remove(configArray.First().Length - 1); if (font.Signature == "flf2a") { font.HardBlank = configArray.First().Last().ToString(); font.Height = ParseIntValue(configArray, 1); font.BaseLine = ParseIntValue(configArray, 2); font.MaxLength = ParseIntValue(configArray, 3); font.OldLayout = ParseIntValue(configArray, 4); font.CommentLines = ParseIntValue(configArray, 5); font.PrintDirection = ParseIntValue(configArray, 6); font.FullLayout = ParseIntValue(configArray, 7); font.CodeTagCount = ParseIntValue(configArray, 8); } return font; }
private static string GetCharacter(FigletFont font, char character, int line) { var start = font.CommentLines + ((Convert.ToInt32(character) - 32) * font.Height); var result = font.Lines[start + line]; var lineEnding = result[result.Length - 1]; result = Regex.Replace(result, @"\" + lineEnding + "{1,2}$", string.Empty); if (font.Kerning > 0) { result += new string(' ', font.Kerning); } return result.Replace(font.HardBlank, " "); }
private static int GetStringWidth(FigletFont font, string value) { List<int> charWidths = new List<int>(); foreach (var character in value) { int charWidth = 0; for (int line = 1; line <= font.Height; line++) { string figletCharacter = GetCharacter(font, character, line); charWidth = figletCharacter.Length > charWidth ? figletCharacter.Length : charWidth; } charWidths.Add(charWidth); } return charWidths.Sum(); }
public Figlet() { //var names = this.GetType().Assembly.GetManifestResourceNames(); //var stream = this.GetType().Assembly.GetManifestResourceStream(names[0]); this.font = FigletFont.Load(FontResources.Small_Slant); }
public Figlet() { this.font = FigletFont.Default; }
public Figlet(FigletFont font) { if (font == null) { throw new ArgumentNullException(nameof(font)); } this.font = font; }
public static void WriteAsciiStyled(string value, FigletFont font, StyleSheet styleSheet) { WriteLineStyled(GetFiglet(font).ToAscii(value), styleSheet); }
public Figlet(FigletFont font) { this.font = font ?? throw new ArgumentNullException(nameof(font)); }
public static void WriteAscii(string value, FigletFont font, Color color) { WriteLine(GetFiglet(font).ToAscii(value).ConcreteValue, color); }
public Figlet() { font = FigletFont.Default; }
public static void WriteAscii(string value, FigletFont font) { WriteLine(GetFiglet(font).ToAscii(value)); }
private static Figlet GetFiglet(FigletFont font = null) { return font == null ? new Figlet() : new Figlet(font); }
public static void WriteAsciiAlternating(string value, FigletFont font, ColorAlternator alternator) { foreach (var line in GetFiglet(font).ToAscii(value).Split('\n')) { WriteLineAlternating(line, alternator); } }
public static void WriteAscii(string value, FigletFont font, Color color) { WriteLine(GetFiglet(font).ToAscii(value), color); }