這個 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.ttf
和 Verdana.ttf
,以及一個包含文字 “Hello World” 的文字檔案 text.txt
。我們想要比較這兩個字型在顯示 “Hello World” 時的差異。
- 準備檔案:
- 將
Arial.ttf
、Verdana.ttf
和text.txt
放置在同一目錄下。
- 將
- 執行腳本:
- 在命令列或終端機中,切換到包含這些檔案的目錄。
- 執行以下指令: Bash
python compare_fonts.py --font1 Arial.ttf --font2 Verdana.ttf --file text.txt
- 查看結果:
- 腳本執行完成後,將在同一目錄下生成一個名為
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/