/// <summary> /// Sets the color of the FIGlet text. /// </summary> /// <param name="text">The text.</param> /// <param name="color">The color.</param> /// <returns>The same instance so that multiple calls can be chained.</returns> public static FigletText Color(this FigletText text, Color?color) { if (text is null) { throw new ArgumentNullException(nameof(text)); } text.Color = color ?? Console.Color.Default; return(text); }
public async Task Should_Render_Wrapped_Text_Correctly() { // Given var console = new FakeConsole(width: 70); var text = new FigletText(FigletFont.Default, "Spectre.Console"); // When console.Render(text); // Then await Verifier.Verify(console.Output); }
public async Task Should_Render_Text_Correctly() { // Given var console = new FakeConsole(width: 70); var text = new FigletText(FigletFont.Default, "Patrik was here"); // When console.Write(text); // Then await Verifier.Verify(console.Output); }
public async Task Should_Render_Right_Aligned_Text_Correctly() { // Given var console = new FakeConsole(width: 120); var text = new FigletText(FigletFont.Default, "Spectre.Console") .Alignment(Justify.Right); // When console.Render(text); // Then await Verifier.Verify(console.Output); }
public async Task Should_Load_Font_From_Stream() { // Given var console = new FakeConsole(width: 180); var font = FigletFont.Load(EmbeddedResourceReader.LoadResourceStream("Spectre.Console.Tests/Data/starwars.flf")); var text = new FigletText(font, "Patrik was here"); // When console.Render(text); // Then await Verifier.Verify(console.Output); }
public async Task Should_Render_Centered_Text_Correctly() { // Given var console = new TestConsole().Width(120); var text = new FigletText(FigletFont.Default, "Spectre.Console") .Alignment(Justify.Center); // When console.Write(text); // Then await Verifier.Verify(console.Output); }
public static string Ascii(string str, FigletFont fnt, string startColor = null, string endColor = null) { startColor = string.IsNullOrEmpty(startColor) ? DefaultStartColor : startColor; endColor = string.IsNullOrEmpty(endColor) ? DefaultEndColor : endColor; var colors = GetGradients(System.Drawing.ColorTranslator.FromHtml(startColor), System.Drawing.ColorTranslator.FromHtml(endColor), ColorSteps); var markup = string.Empty; var renderSegments = new List <Queue <Segment> >(); var characterColorWidth = 1.0f / str.Length; var colorWidth = 1.0f / ColorSteps; for (int i = 0; i < str.Length; i++) { var colorPos = colors.ElementAt((int)((i * characterColorWidth) / colorWidth)); var txt = new FigletText(fnt, str[i].ToString()).Color(new Color(colorPos.R, colorPos.G, colorPos.B)); var segments = txt.GetSegments(AnsiConsole.Console); if (!renderSegments.Any()) { renderSegments.AddRange(Enumerable.Repeat(0, fnt.Height).Select(x => new Queue <Segment>())); } for (int idx = 0; idx < renderSegments.Count; idx++) { renderSegments[idx].Enqueue(segments.ElementAt(2 * idx)); } } foreach (var renderSegment in renderSegments) { foreach (var seg in renderSegment) { markup += $"[#{seg.Style.Foreground.ToHex()}]{seg.Text}[/]"; } markup += "\r\n"; } return(markup); }