.webp 로 실질적으로 실제 필기 텍스트를 생성하십시오.json 구성 지원 먼저, 당신은 handwriter.py 다운로드 하거나 소스 코드를 IDE에 복사해야합니다. 사용자 정의 구성 또는 글꼴 사전 설정을 사용하려면 직접 복제하기 만하면됩니다.
gitclone https://github.com/Unbinilium/Handwriter.git
둘째, 핸드 라이터 -python3가 요구하는 종속성을 설치하십시오.
pip3 install uuid pillow twine setuptools wheel tox pytest handright
셋째, 핸드 라이터 경로를 입력하고 python3 handwriter.py 의 handwriter.py 실행하고 콘솔에 표시된 팁을 따르십시오. 기본 구성을 사용하여 출력 파일 .webp 를 생성합니다.
마지막으로, 드문 오류를 피하기 위해 텍스트 파일의 이름이 *.txt 이고 이름과 텍스트가 모두 UTF-8 으로 인코딩되어 있는지 확인하십시오. 사용자 정의 글꼴의 경우 확장자가 .ttf 인 truetypefont 파일을 사용하고 기본적으로 필기 영화를 사용하는 것이 좋습니다. REMMBER OutfilePath 는 디렉토리 경로이지만 파일 경로는 아니며 Outfilename은 UUID 에 의해 자동으로 생성됩니다.
추가 사용자 정의를 위해서는 핸드 라이터 -python3 구성 파일을 handwriter.json 으로 편집하십시오. 기본 예제는 다음과 같습니다.
{
"text_file_path" : " ~/*.txt " ,
"font_file_path" : " ~/*.ttf " ,
"output_path" : " ~/ " ,
"background_color" : " white " ,
"background_width" : 2480 ,
"background_hight" : 3500 ,
"font_color" : " black " ,
"font_size" : 80 ,
"font_size_sigma" : 2 ,
"perturb_x_sigma" : 2 ,
"perturb_y_sigma" : 2 ,
"perturb_theta_sigma" : 0.05 ,
"line_spacing" : 80 ,
"line_spacing_sigma" : 3 ,
"word_spacing" : -30 ,
"word_spacing_sigma" : 3 ,
"left_margin" : 150 ,
"top_margin" : 150 ,
"right_margin" : 150 ,
"bottom_margin" : 150 ,
"end_chars" : " ,。》?;:’”】}、!%),.>?;:]}!%)′″℃℉ "
} 모든 *_path 전문화되어야합니다. 그런 다음 python3 handwriter.py <configuration file path> 의 argument configuration 파일 경로 로 handwriter.py 실행하십시오.
기본 유형 설정 매개 변수 정의는 여기에 있습니다. 텍스트 선명도와 선명도 background_hight 강화하려면 큰 종이 font_size ( background_width 매개 변수 line_spacing 항상 font_size 보다 커야합니다. 간격이라는 단어가 너무 크다고 생각하면 음수로 설정하십시오.
- ______________________________________________________
^ | Paper ^ |
| | word_spacing | top_margin |
b | left_margin |< --- >| v |
a | < --- > |-----------------------------| - |
c | - ------------ ------------ ^ |
k | ^ | ******** | | ******** | | line_ |
g | font_ | | ** | | ** ** | | |
r | size | | ** | | ** ** | | spacing |
o | v | ** | | ******** | v |
u | - ------------ ------------ - |
n | |-----------------------------|< -------- > |
d | ------------ right_margin |
| | | ******** | |
h | | *** ** | |
i | | ** | |
g | | ** char | |
h | ------------ |
t | ^ |
| | | bottom_margin |
v | v |
- |____________________________________________________ |
|<------- background_width -------> | 일반적으로 매개 변수 font_color 는 black background_color 설정되며 RGBA 색상 프로파일을 사용하여 white 으로 설정되어 색상 이름을 전문으로하여 색상을 자유롭게 설정하십시오. 또한 background_color 그림 파일 경로 일 수 있습니다.이 경우 background_color 배경 그림 파일 경로 를 나타냅니다. 사용자 정의 배경 이미지를 사용하려면 시도하십시오.
매개 변수 *_sigma 무작위 방해 범위를 의미하며 항상 사용한 필기 영화 글꼴에 의해 결정됩니다. 항상 사용자 정의 글꼴과 완벽하게 일치하는 것을 변경하십시오. 예를 들어 "font_size_sigma":2 범위에서 문자의 크기를 무작위로 방해하는 것을 의미합니다. font_size ± 2 . 마찬가지로 "perturb_theta_sigma":0.05 범위 horizontal ± 0.05 에서 무작위로 방해하는 특성 스트로크 회전 반경을 의미합니다. 같은 특수 문자를 피하기 위해 ,。》?;:'”】}、!%),.>?;:]}!%)′″℃℉ end_chars
먼저, 당신은 handwriter.cpp 다운로드 하거나 소스 코드를 IDE에 복사해야합니다. 기본 글꼴 사전 설정을 사용하려면 직접 복제하기 만하면됩니다.
gitclone https://github.com/Unbinilium/Handwriter.git
둘째, handwriter.cpp 실행하십시오 .
handwriter.cpp <TEXT PATH> <OUT PUT PATH> <FONT(1) PATH> <FONT(2) PATH> ... <FONT(n) PATH>
각 인수는 공간으로 나뉩니다 예제 시퀀스, < .html <TEXT PATH> 의 텍스트 파일은 비어있을 수 없으며 <OUT PUT PATH> int 확장자가있는 파일 이름을 포함 해야합니다. 필자는 최소 1 개의 글꼴 경로가 필요합니다.
예를 들어, 4 개의 사용자 정의 글꼴을 사용하여 /usr/local/example.txt 에서 필기를 시뮬레이션 할 수 있습니다.
handwriter.cpp "/handwriter-master/example.txt" "/handwriter-master/example.html" "/handwriter-master/font/font1.ttf" "/handwriter-master/font/font2.otf" "/handwriter-master/font/font3.woff" "https://fonts.gstatic.com/example.woff2"
단순히 example.txt example.html 로 전환하는 글꼴 스타일로 변환하므로 브라우저에서만 결정한 다양한 유형 글꼴을 사용하는 것이 편리합니다. 또한 경로 형식은 유연하며 로컬 경로 또는 URL은 모두 정상입니다. 그렇지 않으면 기본적으로 필기적 인 글꼴을 사용하는 것이 좋습니다. HTML 제목 , 글꼴 크기 및 여백 공간 과 같은 추가 사용자 정의를 위해서는 handwriter.cpp 에서 #define 편집하십시오.
# define HTML_TITLE " Handwriter "
# define FONT_SIZE_MIN 21
# define FONT_SIZE_MAX 25
# define FONT_SIZE_PRECISON 0.1
# define MARGIN_MIN 5.0
# define MARGIN_MAX 5.5
# define MARGIN_PRECISION 0.01마지막으로 브라우저에서 생성 된 HTML을 열고 프린터로 인쇄하려면 마지막으로 두 번 클릭하십시오. 가짜 필기가 있습니다!
현재 핸드 라이터 -CPP는 매우 간단한 아이디어 일 뿐이며 매우 낮은 수준의 완료로 실제로는 매우 서투른 알고리즘이 있습니다. 선생님처럼 당신의 트릭을 쉽게 볼 수있는 사람.
더 많은 필기 생성을 위해서는 수평 위치, 수직 위치 및 글꼴 크기와 같은 더 많은 자유 수준이 필요합니다. 그리고 각 단어 전체는 뇌졸중 회전 각도를 포함하여 무작위로 방해되어야합니다. 또한 펜 압력에 대한 임의이지만 일시적으로 무작위가 아닌 알고리즘, NIT 이동 속도 등이 필요합니다. 그리고 기계식 암을 사용하여 프린터 대신 필기를 시뮬레이션하는 것이 좋습니다.
나는 재미를 위해이 프로그램을 썼고 연습함으로써 캐릭터가 원칙을 더 깊이 인코딩하는 캐릭터를 배웠습니다. C ++ 및 HTML을 사용하는 것은 좋은 생각이 아닙니다. 대신 핸드 라이터 -python3을 사용해보십시오.
Unbinilium이 작성한 필기체. 모든 글꼴 사전 설정은 인터넷에서 나온 일부 중국어 글꼴입니다.