跳過到頁腳內容
Iron Academy Logo
C# 應用程式
C# 應用程式

其他分類

使用FIGlet創建字體藝術 - Spectre Console系列

Tim Corey
3m 47s

Spectre Console是一個.NET程式庫,旨在增強控制台應用程式,使其具備豐富的文本、面板、表格、進度條,甚至是ASCII文字藝術。 您可以為所顯示的資料添加顏色、對齊和視覺結構,而不再局限於簡單的黑白輸出。 其最吸引人的功能之一是Spectre Console Figlet,允許您使用經典的Figlet字體格式渲染大型文本橫幅。

在本文中,我們將透過Tim Corey的影片"Creating Word Art with Figlet - Spectre Console Series"深入瞭解這個功能。

引入Spectre Console中的Figlet

在0:00時,Tim提醒觀眾,"Spectre Console允許您將C#控制台應用程式轉變為視覺上吸引人且資訊豐富的應用程式。"他描述該程式庫為構建全功能命令行工具提供了一種方式,具備面板、表格、進度指示器和其他服務,而不是手動編寫ANSI代碼。

在0:16時,他說,"在這一課中,我們將使用一個叫Figlet的系統創建ASCII文字藝術。"Figlet已經存在了幾十年,是一種使用figlet字體文件(通常具有.fl​​f擴展名)的方式,將文本渲染為橫幅風格的ASCII藝術。 Spectre Console默認內建一個Figlet字體,但它也可以加載其他字體。 程式庫將此功能包裝在一個名為FigletText的類中(有時稱為Spectre Figlet Text物件),您可以將其作為新實例創建,然後進行樣式化。

Tim在0:22時指出,此範例的源代碼鏈接到影片描述中,以便觀眾可以下載並跟隨學習。

第一個例子:內嵌Spectre Console Figlet文本

在0:38時,Tim從他所稱的"簡單的內嵌方式"開始。這是您創建和渲染Spectre Console Figlet Text物件的單句方式:

AnsiConsole.Write(
    new FigletText("Hello")
        .Centered()
        .Color(Color.Red)
);
AnsiConsole.Write(
    new FigletText("Hello")
        .Centered()
        .Color(Color.Red)
);

在0:46時,Tim解釋他在創建一個帶有字串參數"Hello"的新FigletText實例。 此參數是要渲染的文本。

在0:53時,他直接在物件上鏈接樣式方法。 首先在1:00時用.Central()置中,將ASCII橫幅置中對齊於可用的列。 然後在1:02時,使用.Color(Color.Red)指定顏色——在這個例子中是紅色作為強調色。

當Tim在1:12時運行此代碼時,控制台顯示了一個粗體、紅色的ASCII"HELLO"以內建Figlet字體格式。 這是一種快速方式,可為控制台應用程式添加大型標題或頁眉。

Spectre Console Word Art Figlet 1 related to 第一個例子:內嵌Spectre Console Figlet文本

第二個例子:重用FigletText物件

在1:22時,Tim展示了第二種模式:而不是內嵌創建Figlet文本,您可以先創建一個變數。這樣就更容易設置或存儲屬性、更改樣式或重用相同的物件。

var figlet = new FigletText("World");
figlet.Centered();
figlet.Color(Color.Red);
AnsiConsole.Write(figlet);
var figlet = new FigletText("World");
figlet.Centered();
figlet.Color(Color.Red);
AnsiConsole.Write(figlet);

在1:28時,Tim將字串"World"創建為新實例。 在1:41時,他調用了.Centered()置中。 在1:44時,他再次設置了顏色——他開玩笑地說"就選紅色吧,為什麼不呢?"——然後在1:59時用AnsiConsole.Write(figlet);將物件寫入控制台。

在2:04時運行時,這顯示了"WORLD"在之前的"HELLO"下方變成大的ASCII藝術。 這表明該功能顯示了兩個單獨的塊,因為您調用了兩次Write。

瞭解Write和Figlet的運作方式

Tim在2:10時暫停,提供了一個有關Spectre Console如何渲染Figlet文本的重要細節。 通常,AnsiConsole.Write不會像WriteLine一樣附加換行符。 但對於某些可渲染物件—例如FigletText或Panel—Spectre Console自動用換行符終止塊,以確保顯示正確。

他在2:20時解釋,字串的長度也可能根據控制台窗口的寬度或字體文件引起換行,但這與換行符行為是分開的問題。 這對於構建命令系統或編寫多個標題、表格或進度條的腳本的使用者來說是有用的背景:您不能依賴Write與普通字串完全一致。

樣式選擇:顏色和更多

在2:53時,Tim指出,您不僅限於紅色作為指定顏色。 您可以使用綠色、白色、黃色或程式庫支援的任何顏色:

figlet.Color(Color.Yellow);
figlet.Color(Color.Yellow);

他在3:00時指出,您還可以"使其閃爍"並套用其他樣式,雖然他在這個簡短的課程中沒有詳述每個選項。 關鍵是FigletText物件公開了可在運行時設置或切換的公共屬性(例如Color)。

Spectre Console Word Art Figlet 2 related to 樣式選擇:顏色和更多

這顯示了如何輕鬆選擇不同的字串和顏色,以在您的控制台應用程式內創建品牌標題、提示或資料區標題。

Figlet字體和文件

儘管Tim保持此範例簡單,但其底層系統使用figlet字體格式(.flf文件)來渲染每個字符。 Spectre Console包含一個默認的字體值(稱為"Standard"),但您可以將FigletText構造函數指向不同的figlet字體文件,從而完全改變您的ASCII藝術的外觀。

這使您有可能開啟自定義字體的路徑,將其新增至您的專案,然後返回完全不同風格的橫幅。 這在Tim的簡短影片中未顯示,但它是他正在演示的相同API的一部分。

在控制台應用程式中的實用用途

Tim在3:12時總結道,提醒觀眾Figlet可以用來創建有趣的應用程式標題。 結合Spectre Console的其他功能—如顯示資料庫資料的表格、用於長時間運行任務的進度條以及用於分組資訊的面板—FigletText可以幫助您構建一個系統感覺精緻的命令系統。

例如,您可以使用Figlet文字來:

  • 在工具或腳本的開始顯示大標題或版本號碼。

  • 在檢索到的資料表格上方顯示區段標題。

  • 提供強調色以突出警告或成功消息。

  • 在多步驟提示或服務中分隔不同的操作。

由於FigletText是一個可渲染的物件,您可以將其存儲在變數中,設置或更改其屬性(顏色、對齊、文字字串),然後多次寫入。

總結

這課程雖然簡短,但它展示了如何使用Spectre Console的Figlet支援來立即為您的控制台輸出添加風格。

如果您想要更詳細的資訊,Tim建議訪問源代碼鏈接和Spectre Console文檔。 那裡您還可以下載其他Figlet字體,如果您想嘗試不同的風格。

Tim Corey影片的要點

  • Spectre Console Figlet允許您使用FigletText物件渲染ASCII橫幅。

  • 您可以內嵌創建或作為新實例設置其屬性,然後寫入。

  • 它預設使用內建Figlet字體,但可以加載自定義.fl​​f字體文件。

  • .Centered()和.Color(Color.Red)是可套用的樣式範例。

  • AnsiConsole.Write自動為Figlet文字添加換行符。

  • 此功能非常適合在控制台應用程式中用作標題、標題或區段間隔。

通過跟隨Tim Corey的影片,您可以立即開始使用Spectre Console的Figlet支援來增強自己的命令行工具。 無論您是在顯示檢索到的資料、編寫提示,還是僅僅為腳本添加風格,FigletText都為您的控制台提供了大膽、色彩豐富的邊緣,僅需極少的代碼。

Hero Worlddot related to 使用FIGlet創建字體藝術 - Spectre Console系列
Hero Affiliate related to 使用FIGlet創建字體藝術 - Spectre Console系列

通過分享您所愛的東西賺得更多

您是否在為使用.NET、C#、Java、Python或Node.js的開發者創建內容?將您的專業知識轉化為額外收入!

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我