
中文個人手寫字體製作工具
#手寫體#字體#中文#書法#藝術#造字
希望製作自己手寫字體的愛好者,本工具使用開源fontforge,你擁有你字體的完全版權。
安裝Homebrew , 然後
brew install fontforge
brew install potrace
brew install zbar
Python packages 建議使用conda 安裝
conda env create -f environment.yml
之後你可能會遇到錯誤ImportError: Unable to find zbar shared library ,你需要以下workaround
mkdir ~/lib
ln -s $(brew --prefix zbar)/lib/libzbar.dylib ~/lib/libzbar.dylib
按照http://designwithfontforge.com/en-US/Installing_Fontforge.html 安裝FontForge
apt-get install software-properties-common
add-apt-repository ppa:fontforge/fontforge
apt-get update
apt-get install fontforge
我第二步沒成功,但也不影響,可以跳過。
我們需要它的Python模塊,要注意這個模塊目前在Linux上只支持python2.7版本
apt-get python-fontforge
這步成功後,安裝Potrace
apt install potrace
然後安裝之後opencv需要的
apt install libgl1-mesa-glx
然後我們開始安裝Python package,同樣推薦使用conda 安裝。如果你的內存允許,你可以直接一步到位
conda env create -f environment.yml
如果你跟我一樣內存不足的話,也可以一個個安裝
conda create --name wefont python=3.9
conda activate wefont
conda install -c conda-forge pyzbar
conda install numpy
conda install -c conda-forge opencv
conda install -c conda-forge matplotlib
conda install -c conda-forge fpdf
conda install -c conda-forge qrcode
如果你目標宏大,想得到完整字體,你需要寫6763個漢字,模板可以直接在template下面下載。同時也提供常用一千字模板,二千字模板等等。
你也可以定制自己的模板,你的目標可以是先覆蓋一本你最愛的的書,比如红楼梦.txt
sed 's/(.)/1n/g' 红楼梦.txt | sort | uniq -c | sort -nr | awk '{print $2}' > 红楼梦字集.txt
就可以得到這本書裡面所有的不同單字,按照出現頻率排列。用這個文件就可以產生自己的模板。
cd src
python generate_template.py 红楼梦字集.txt
就可以得到一個pdf模板文件。 你也可以調整模板字格大小,字體,輸出文件名。
src/config裡面可以找到常用字的單字文本,可以直接用來用。
(wefont) ➜ src git:(master) python generate_template.py -h
usage: generate_template.py [-h] [-cs CELL_SIZE] [-f FONT] [-fs FONT_SIZE] [-o OUTPUT] [-rs] [-v] filename
generate template based on gb2312
positional arguments:
filename input file containing the characters
options:
-h, --help show this help message and exit
-cs CELL_SIZE, --cell_size CELL_SIZE
the size of cell, default is 20
-f FONT, --font FONT the Chinese font used, default is fireflysung
-fs FONT_SIZE, --font_size FONT_SIZE
the font size, default is based on cell size
-o OUTPUT, --output OUTPUT
output pdf file name
-rs, --remove_subscript
remove the subscript number of cell
-v, --verbose print more info
書寫建議使用色彩比較重的筆,掃描後如果輸出的是pdf ,需要轉化為jpg
convert -verbose -density 150 -quality 100 扫描文件.pdf input-%02d.jpg
可能需要安裝ImageMagic
這一步可以一鍵完成
cd src
./forge_my_font.sh 字体名 扫描文件1.jpg 扫描文件2.jpg 扫描文件3.jpg ...
在大規模開寫之前,可以先試一試。 template裡面有测试模板(郭襄小诗).pdf ,寫完得到字體之後可以用你的字體預覽下下面這首小詩,看看效果
我走過山時山不說話我路過海時海不說話小毛驢滴滴答答倚天劍伴我走天涯大家都說我因為愛著楊過大俠才在峨嵋山上出了家其實我只是愛上了峨嵋山上的雲和霞像極了十六歲那年的煙花
如果模板中有字寫錯了,可以先不用管它,正常先生成字體,然後打補丁。打補丁的方式是先把錯字集中寫到一個文件中,比如"錯字集.txt", 然後使用
cd src
python generate_template.py 错字集.txt
生成模板,書寫,掃描,得到jpg文件
cd src
./patch_my_font.sh 现在的字体.ttf 扫描文件1.jpg 扫描文件2.jpg 扫描文件3.jpg ...
這樣新的模板中的字符就會覆蓋舊的字體中的字符,從而得到新的打補丁的字體。 而且模板中的字符也可以是完全新的字符,這樣就不是覆蓋,而是添加到舊的字體中。用這種方式,你可以循序漸進的書寫新的字,添加到舊的字體中,從而不斷得到更加完全的字體。
問:為什麼我的圖片無法被處理?
答:目前發現截圖的圖片無法被正確處理,QR code無法被識別,所以請目前不要使用截圖。

