Generate Font from png file:
Name png chracter files in their unicode name, such as "0.png" and "零.png"; put them in source directory, and convert it.
FontGenerator
├──fonts font file output directory
├──images input image store directory
├──potrace svg generate software
├──readme-asset assets
└──src source code
Fast Run:
python ./src/main.py ./images/source-directory ./fonts/destination-font-name.ttfTo run this program, please install these requirements:
opencv-python
pillow
numpy
fonttools
svgpath2mpl
and these software:
unzip the package in /potrace/installer, and copy the executable file into /potrace/bin.
I really recommand using this program under Linux enviroment. It is inconvinient to use fontforge as a python extention under Windows.
update:
change the method using fontforge to ffpython.
Install fontforge under Windows, add it's bin fold's path into var PATH, and enjoy it!
update 2:
Throw those old and poorly maintained software into the trash bin. Now we have a pure Python implementation (although still not perfect) as an alternative. Enjoy it!
enhance(2.0): Enhances image contrast.2.0increases contrast; higher values yield more contrast.medianBlur(img_np, 5): Reduces image noise.5is the kernel size; larger values increase smoothness.adaptiveThreshold(..., 21, 5):21: Kernel size for local thresholding; larger values smooth the result.5: Constant subtracted from mean or weighted mean in thresholding.
threshold(..., cv2.THRESH_OTSU): Applies Otsu's method to find an optimal threshold value automatically.
--opttolerance 0.2: Curve optimization tolerance in Potrace. Lower values retain more bitmap details.--alphamax 3.5: Maximum angle for curve smoothing in Potrace. Higher values result in smoother curves.
Apache 2.0
