比較字型差異

這個 Python 腳本目的在比較兩個字型在顯示文字上的差異,並將結果輸出到文件中。它透過逐個字元比較像素差異,計算出每個字元的差異百分比,以及所有字元的平均差異百分比。

如果想看對照圖的話,可以下 –save 參數, 如果只有要看比對結果, 會顯示在compare_result.txt 文字檔內。

為什麼要學這個?

在設計、排版或任何需要使用字型的領域中,字型的選擇至關重要。即使是看似相似的字型,也可能在細節上存在差異,進而影響整體視覺效果。透過這個 Python 腳本,您可以:

  • 精準比較字型差異: 量化兩個字型在像素層級的差異,找出人眼難以察覺的細節。
  • 提升設計品質: 確保字型選擇符合設計需求,避免因字型差異導致的視覺不協調。
  • 字型開發與測試: 字型設計師可以利用此工具,測試字型微調後的差異。
  • 排版校對: 協助校對排版文件,確保字型使用一致。
  • 不同字集之間 glyph 共用的判斷: 那些字可以同時被用在 cjkjp / cjktc / cjksc 的依據。

前置作業

在使用此腳本之前,請確保您已完成以下準備工作:

  • 安裝 Python 和 Pillow:
    • 如果您的電腦尚未安裝 Python,請至 Python 官網下載並安裝。
    • 在命令列或終端機中執行以下指令,安裝 Pillow 函式庫: Bash
      pip install pillow
  • 準備字型檔案:
    • 將您要比較的兩個字型檔案(例如 .ttf.otf 格式)放置在電腦中方便存取的位置。
  • 準備文字檔案:
    • 建立一個文字檔案(例如 text.txt),其中包含您要比較的文字。
  • Max腳本檔案下載:
    https://github.com/max32002/MaxFontScripts/blob/master/compare_fonts.py

腳本使用方式

在命令列或終端機中,使用以下指令執行腳本:

Bash

python compare_fonts.py --font1 <font1_path> --font2 <font2_path> --file <text_file_path> [options]
  • <font1_path>:第一個字型檔案的路徑。
  • <font2_path>:第二個字型檔案的路徑。
  • <text_file_path>:文字檔案的路徑。
  • [options]:可選參數。

參數說明

  • --font1 <font1_path>:指定第一個字型檔案的路徑。
  • --font2 <font2_path>:指定第二個字型檔案的路徑。
  • --file <text_file_path>:指定包含要比較文字的文字檔案路徑。
  • --output_file <output_file_path>:指定輸出結果的檔案路徑,預設為 compare_result.txt
  • -s, --size <font_size>:指定字型大小,預設為 64。
  • --font1_x_offset <x_offset>:指定第一個字型 X 軸偏移量,預設為 0。
  • --font1_y_offset <y_offset>:指定第一個字型 Y 軸偏移量,預設為 0。
  • --font2_x_offset <x_offset>:指定第二個字型 X 軸偏移量,預設為 0。
  • --font2_y_offset <y_offset>:指定第二個字型 Y 軸偏移量,預設為 0。
  • --save:儲存左右對照圖。
  • --reverse:反轉左右對照圖的左右位置。
  • --output_dir <output_directory>:指定對照圖的輸出目錄,預設為 comparison_images

4. 實際範例

假設我們有兩個字型檔案 Arial.ttfVerdana.ttf,以及一個包含文字 “Hello World” 的文字檔案 text.txt。我們想要比較這兩個字型在顯示 “Hello World” 時的差異。

  1. 準備檔案:
    • Arial.ttfVerdana.ttftext.txt 放置在同一目錄下。
  2. 執行腳本:
    • 在命令列或終端機中,切換到包含這些檔案的目錄。
    • 執行以下指令: Bashpython compare_fonts.py --font1 Arial.ttf --font2 Verdana.ttf --file text.txt
  3. 查看結果:
    • 腳本執行完成後,將在同一目錄下生成一個名為 compare_result.txt 的檔案,其中包含詳細的字元差異百分比和平均差異百分比。
    • 如果使用了 --save 參數,還會在 comparison_images 目錄下生成左右對照圖。

5. 進階應用

  • 調整字型大小和偏移量: 使用 -s--font1_x_offset--font1_y_offset--font2_x_offset--font2_y_offset 參數,調整字型大小和偏移量,以更精確地比較字型差異。
  • 儲存對照圖: 使用 --save 參數,儲存左右對照圖,以便更直觀地比較字型差異。
  • 反轉對照圖: 使用 --reverse 參數,反轉左右對照圖的左右位置。
  • 指定輸出目錄: 使用 --output_dir 參數,指定對照圖的輸出目錄。

6. 注意事項

  • 字型檔案的路徑必須正確。
  • 文字檔案的編碼必須為 UTF-8。

針對上面產出的文字檔, 接續處理是:

篩選文字檔中的差異百分比結果並輸出特定字元
https://codereview.max-everyday.com/filter_results/