生成字型與圖像的對照表

想比對自己修改後的圖片與目標字型的對照表.

這個 script 會把來源圖像跟目標字型渲染的字元圖像合併,然後做一些前處理,來產生可以用在機器學習或其他用途的圖像資料集。

前置作業

Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/font_image_combiner.py

環境設定

  • 先確定你的電腦有裝 Python。
  • 安裝需要的 Python 套件:
pip install opencv-python numpy Pillow torchvision tqdm fonttools

Script 說明

這個 script 主要有這些函式:

  • draw_character:把單個字元渲染成圖像。
  • convert_to_gray_binary:把圖像轉成灰階二值圖像。
  • create_example_image:把來源圖像跟目標字型圖像合併成範例。
  • filter_recurring_hashes:過濾字型裡重複的雜湊值。
  • process_images:處理圖像然後存成範例。
  • main:主要函式,處理參數然後呼叫其他函式。

使用方法

1. 把 script 存成 font_image_combiner.py
2. 準備好來源圖像的目錄跟目標字型檔案。
3. 打開終端機或命令提示字元,執行這個指令:

python font_image_combiner.py path_of_source_images --font_path /path_of_font.ttf --output_dir /path_of_output_dir

你可以根據需要調整這些參數:

--image_dir來源圖像目錄路徑(一定要有)。

副檔名, 限定 .png 格式
--font_path目標字型檔案路徑(一定要有)。
--output_dir輸出目錄路徑(預設是 output_dir)。
--charset字元集檔案路徑(一行一個字元)。

如果沒給,會從來源圖像目錄的檔案名稱推斷
字元集。建議不要設定 charset 內容值,會比較方便。
--canvas_size畫布大小(預設是 256)。
--char_size字元大小(預設是 256)。
--x_offset目標字型 X 軸偏移量(預設是 0)。
--y_offset目標字型 Y 軸偏移量(預設是 0)。
--disable_auto_fit關掉圖像自動調整大小。
--reverse反轉來源圖像跟目標字型圖像的位置。
--filename_rule檔案名稱規則(預設是seq)。
--filename_prefix檔案名稱前置字元。
--filter_hashes過濾重複的雜湊值。
--shuffle處理字元集之前先隨機排序。

範例

  • 來源目錄名稱 ./glyph_image/ 目錄裡, 有一個檔名為: 23433.png 內容是: 安
  • 要使用的字型: ZenMaruGothic-Regular.ttf
  • 要輸出的目錄: output_images
  • 輸出的前置字元: font_example_
  • 畫布大小: 128
  • 字型大小: 128

這是一個範例指令:

python font_image_combiner.py --image_dir glyph_image --font_path ZenMaruGothic-Regular.ttf --output_dir output_images --filename_prefix="font_example_" --canvas_size=128 --char_size=128 --disable_auto_fit

注意事項

  • 確定來源圖像目錄的圖像檔案名稱是字元的 Unicode 編碼(十進制)。
  • 如果給了字元集檔案,確定檔案裡的每個字元都佔一行。
  • 你可以根據需要調整圖像大小、偏移量和其他參數。

相關文章

zi2zi 沒有出現在訓練資料裡的符號, 要怎麼處理?
https://stackoverflow.max-everyday.com/2025/02/zi2zi-unseen-data/

透過 font_image_combiner.py 做對應圖, 想取得對應圖修改過的半邊圖片, 就可以透過:
裁剪左右對應的圖片
https://codereview.max-everyday.com/crop_images/