這段程式碼是一個用來篩選字型圖片的小工具。
有時候我們會下載一大堆以 Unicode 編碼命名的圖片檔案,但實際上只需要其中一部分。這個腳本可以幫你比對需要的文字,並從成千上萬的檔案中把目標圖片抓出來。
Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/copy_selected_image.py
基本原理
這個腳本主要使用 Python 內建的函式庫。它會掃描你指定的資料夾,尋找檔名為數字的圖片檔。這些數字會被當作 Unicode 編碼。腳本會根據你提供的文字或範圍,計算出對應的編碼集合。最後它會把匹配成功的檔案複製到新的資料夾。
使用方法與參數
你需要先安裝 Python 環境。確保腳本存成 copy_selected_image.py 檔案。在終端機輸入指令就能執行。基本的語法結構很簡單。
python copy_selected_image.py [輸入目錄] [參數]
[輸入目錄] 是必填的輸入目錄路徑。
[參數] 說明如下。
- –string, 或 -s, 指定想要的文字。
- –file, 或 -f, 讀取文字檔內容。
- 如果你知道編碼範圍,可以使用 –range 輸入 16 進位數值。
- 程式預設會把結果存到名為 output 的資料夾, 可以用 –output, 或 -o 指定輸出目錄。
操作範例
假設你的圖片都在 images 資料夾。如果你想挑出「你好」這兩個字的圖片,指令如下:
python copy_selected_image.py images --string 你好 --output result
如果你需要挑選一段連續的 Unicode 範圍,例如 4E00 到 4E10,可以這樣寫:
python copy_font.py images --range 4E00-4E10
執行後程式會顯示匹配到的總數,並自動建立目標資料夾存放檔案。
注意事項
檔案名稱必須是純數字。副檔名必須是常見的圖片格式。程式在複製時會檢查目標路徑。如果發生檔名衝突,它會印出警告訊息。這對於處理大量字圖資料非常方便。
進階參數說明
--file目的字串的文字檔。--range目的字元的範圍, 使用16進制, 例如: –range AC00,D7AF--range_int目的字元的範圍, 使用10進制.
常見的 range
- 2E80 – 2EFF: CJK Radicals Supplement
- 3400 – 4DBF: 中日韓統一表意文字擴充區A,
- 4E00 – 9FFF: CJK Unified Ideographs,
- AC00 — D7AF: 諺文音節 (Hangul Syllables), Hangul音節是一個Unicode塊,其中包含用於現代韓語的預先編寫的Hangul音節塊。音節可以通過算法直接映射到韓文字母Unicode塊中的兩個或三個字符的序列: U + 1100–U + 1112之一:19個現代韓文字母領先的輔音字母; U + 1161–U + 1175之一:21種現代韓文元音字母;
- F900 – FAFF: CJK Compatibility Ideographs
- 20000 – 2A6DF: 中日韓統一表意文字擴充區B
- 30000 – 3134F: 中日韓統一表意文字擴展區G
相關文章:
- 從字體專案裡取得特定文字glyph
https://codereview.max-everyday.com/get-selected-glyph-from-font/