close

在一個因緣際會的情況下,開發的系統需要將文字轉成圖型檔儲存,
於是又展開了一場Google之旅,整理好這個技巧做個筆記留存...

只要是在微軟Office的文書作業環境中一定會有個字型的選項,
如下圖在Word介面的功能區,選擇[Cooper Black]所呈現的文字,

Font_Select1

在可設定字型的介面都可以依設定呈現相同內容但不同樣式的文字,
在這裡網頁的Html程式碼中設定上述的字型,也會呈現下面的效果,

ABCDEFGHI

如果複製上述文字後在記事本貼上,那麼就不會有任何文字效果了,
所以把不同的風格的文字變成圖型檔案,就不用操作繪圖軟體了(^^)
如下圖一樣在Word選擇[Wingdings]字型,一樣的文字內容...

Font_Select2

把這些"文字"變成圖型檔就可以做不同的用途了...

所以如下圖做一個簡單的網頁設計,
選擇字型、輸入字串、然後預覽並輸出圖檔,

WebSample

在網頁中做一個選擇字型的下拉選單,

Font_Select_Web

程式碼技巧利用System.Drawing.FontFamily類別即可完成,

Font_Select_WebList

不過網頁無法像Word介面那樣直接預覽,可能還需要繼續爬文吧...

Font_Select_Word

有了文字內容及字型樣式,利用System.Drawing類別的技巧來處理,
如下圖程式碼,老實說這是從網海茫茫東拼西湊出來的...

Font_2_Image

雖然有點兒知其然而不知其所以然,不過這方法還真是好用!
MSDN官網也有System.Drawing類別的說明,
例如上圖第67行,GraphicsUnit如果不是用"Pixel"效果就會有差,
要改變圖片背景及字體的顏色在第73行及74行...

上述提到使用者在網頁中選擇字型、輸入字串...

WebSample

上圖的[Preview]按鈕便是執行預覽並輸出圖檔的部分,
如下程式碼,
第42~44行將設定的內容顯示於Label物件Source_L中,

Font_Preview_Save

字型設定來自於Label物件FontSample_L的Font.Name屬性,
這個在剛剛下拉選單選完的時候就設定好了,
然後文字"Good morning!"及大小"28"來自於二個Textbox物件,
分別是Tbx_SourceText以及Tbx_SourceSize...

第46行設定儲存路徑及檔案後,執行自建函數GetBarCodeImage,
第55行在GetBarCodeImage函數中呼叫執行CreateBarCode函數,
CreateBarCode函數利用上述System.Drawing類別的技巧處理,
最後將回傳的圖形物件依據指定的路徑及檔名儲存...

Font_2_Image_File

產出的A.png檔如下:

A

此次筆記一開始有提到這是個因緣際會的情況促使尋找這個技巧,
所以有沒有察覺在上述自建函數的名稱中都有"BarCode"的字樣?
因為要開發的系統需要有一個條碼發送的功能,
讓每個授權都有一組加密防偽且唯一的識別碼,
在編碼的演算過程後將識別碼轉成條碼圖型發送,
如下圖,
從網路下載"IDAutomationHC39M"字型並安裝後就可以拿來用了...

WebSample_BarCode

完整的程式碼及範例已壓縮放置雲端空間:

https://1drv.ms/u/s!AO1CPC3fzWzdgrl1

 

arrow
arrow
    文章標籤
    C# 字型變圖型 ASP.Net
    全站熱搜

    王振權 發表在 痞客邦 留言(0) 人氣()