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;
        }
示例#2
0
        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, " ");
        }
示例#3
0
        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();
        }
示例#4
0
 public Figlet()
 {
     //var names = this.GetType().Assembly.GetManifestResourceNames();
     //var stream = this.GetType().Assembly.GetManifestResourceStream(names[0]);
     this.font = FigletFont.Load(FontResources.Small_Slant);
 }
示例#5
0
 public Figlet()
 {
     this.font = FigletFont.Default;
 }
示例#6
0
        public Figlet(FigletFont font)
        {
            if (font == null) { throw new ArgumentNullException(nameof(font)); }

            this.font = font;
        }
示例#7
0
 public static void WriteAsciiStyled(string value, FigletFont font, StyleSheet styleSheet)
 {
     WriteLineStyled(GetFiglet(font).ToAscii(value), styleSheet);
 }
示例#8
0
 public Figlet(FigletFont font)
 {
     this.font = font ?? throw new ArgumentNullException(nameof(font));
 }
示例#9
0
 public Figlet()
 {
     this.font = FigletFont.Default;
 }
示例#10
0
 public static void WriteAscii(string value, FigletFont font, Color color)
 {
     WriteLine(GetFiglet(font).ToAscii(value).ConcreteValue, color);
 }
示例#11
0
 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);
 }
示例#14
0
 public Figlet()
 {
     //var names = this.GetType().Assembly.GetManifestResourceNames();
     //var stream = this.GetType().Assembly.GetManifestResourceStream(names[0]);
     this.font = FigletFont.Load(FontResources.Small_Slant);
 }
 public static void WriteAsciiStyled(string value, FigletFont font, StyleSheet styleSheet)
 {
     WriteLineStyled(GetFiglet(font).ToAscii(value), styleSheet);
 }
 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);
 }