.webp direkt aus der Textdatei zum Druckenjson Konfiguration unterstützt Zunächst müssen Sie handwriter.py herunterladen oder seinen Quellcode an Sie ide kopieren. Wenn Sie eine benutzerdefinierte Konfiguration oder Schriftstellen verwenden möchten, klonen Sie einfach den Handschreiber direkt:
gitclone https://github.com/Unbinilium/Handwriter.git
Zweitens installieren Sie Abhängigkeiten, die Handschreiber-Python3 erforderlich sind:
pip3 install uuid pillow twine setuptools wheel tox pytest handright
Drittens betreten Sie Handschreiberpfad und führen Sie handwriter.py von python3 handwriter.py aus, folgen Sie den in der Konsole angezeigten Tipps. Es generiert die Ausgabedatei .webp unter Verwendung der Standardkonfiguration.
Um einige seltene Fehler zu vermeiden, ist es *.txt und sowohl Name als auch Text mit UTF-8 codiert, um sicherzustellen, dass der Name Ihrer Textdatei *.txt ist. Für benutzerdefinierte Schriftarten verwenden Sie bitte die TrueTypeFont- Datei, in der sich die Erweiterung .ttf aussieht, und ich empfehle, standardmäßig handschriftlich zugelassene Schriftarten zu verwenden. Remmber Outfilepath ist ein Verzeichnispfad, aber kein Dateipfad. Der Outfileame wird automatisch von UUID generiert.
Für weitere Anpassungen bearbeiten Sie bitte die Konfigurationsdatei "Handwriter-Python3" namens handwriter.json Manuell. Das Standardbeispiel ist hier:
{
"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" : " ,。》?;:’”】}、!%),.>?;:]}!%)′″℃℉ "
} Alle *_path sollten spezialisiert sein. Führen Sie dann handwriter.py mit dem Argument -Konfigurationsdateiweg von python3 handwriter.py <configuration file path> aus.
Die Definition der Grundeinstellungen der Grundeinstellungen finden Sie hier. Zur Stärkung der Textschärfe und -klarheit wird immer empfohlen, wenn große Papiergröße ( background_width , background_hight ) und Big font_size empfohlen werden. Bitte beachten Sie, dass der Parameter line_spacing immer größer als font_size . Wenn Sie darüber nachdenken, dass der Wortabstand zu groß ist, stellen Sie ihn auf eine negative Zahl ein.
- ______________________________________________________
^ | 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 -------> | Normalerweise wird Parameter font_color auf black eingestellt und background_color wird auf white gesetzt, wobei das RGBA -Farbprofil verwendet wird, und können Sie die Farbe durch Spezialisierung des Farbnamens freistellen. Auch der background_color kann ein Bilddateipfad sein. In diesem Fall steht background_color für einen Hintergrund -Bilddateiweg . Versuchen Sie dies, wenn Sie ein benutzerdefiniertes Hintergrundbild verwenden möchten.
Der Parameter *_sigma bedeutet zufälligen störenden Bereich und wird immer durch die von Ihnen verwendete handschriftliche Schriftart bestimmt. Ändern Sie ihn immer, wodurch Ihre benutzerdefinierte Schriftart perfekt passt. Zum Beispiel "font_size_sigma":2 bedeutet, dass die Größe des Zeichengröße in Bereich font_size ± 2 zufällig stört. In ähnlicher Weise "perturb_theta_sigma":0.05 bedeutet zufällig störende Charakter -Hubdrehungsradius im Bereich horizontal ± 0.05 . Um ein besonderes Zeichen wie , end_chars ,。》?;:'”】}、!%),.>?;:]}!%)′″℃℉
Zunächst müssen Sie handwriter.cpp herunterladen oder seinen Quellcode an Sie IDE kopieren. Wenn Sie die Standard -Schriftarten verwenden möchten, klonen Sie einfach direkt:
gitclone https://github.com/Unbinilium/Handwriter.git
Zweitens führen Sie handwriter.cpp mit konfigurierten Argumenten aus, und Argumente sollten dem folgenden Vorlagenbeispiel folgen:
handwriter.cpp <TEXT PATH> <OUT PUT PATH> <FONT(1) PATH> <FONT(2) PATH> ... <FONT(n) PATH>
Jedes Argument wird durch den Raum geteilt und befolgen Sie die Beispielsequenz, die Textdatei in <TEXT PATH> konnte nicht leer sein und <OUT PUT PATH> sollte den Dateinamen mit Dateierweiterung .html enthalten. Die Schriftartenpfadnummer ist um int -Größe begrenzt. Achten Sie darauf, dass der Handschreiber mindestens 1 Schriftart Pfad benötigt.
Zum Beispiel können wir 4 benutzerdefinierte Schriftarten verwenden, um die Handschrift von /usr/local/example.txt zu simulieren:
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"
Es konvertieren einfach example.txt in example.html mit handschreibem Schriftart, sodass es zweckmäßig ist, verschiedene Typ-Schriftarten zu verwenden, die nur von Ihrem Browser bestimmt werden. Auch das Pfadformat ist flexibel, lokaler Pfad oder URL sind beide in Ordnung. Andernfalls empfehle ich, standardmäßig handschriftlich zugelassene Schriftarten zu verwenden. Für weitere Anpassungen wie den HTML -Titel , die Schriftgröße und der Randraum bearbeiten Sie den #define in handwriter.cpp :
# 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.01Zum Schluss klicken Sie, um das generierte HTML in Ihrem Browser zu öffnen und mit Ihrem Drucker zu drucken.
Derzeit ist Handschreiber-CPP nur eine sehr einfache Idee und in einem sehr geringen Abschluss tatsächlich mit einem sehr ungeschickten Algorithmus. Für wen kann Ihr Lehrer Ihren Trick leicht durchschauen.
Für eine wirklich handschriftliche Erzeugung sind mehr Freiheitsgrade erforderlich, wie z. B. horizontale Position, vertikale Position und Schriftgröße. Und das gesamte Wort sollte zufällig gestört werden, einschließlich seines Schlaganfall -Rotationswinkels. Auch zufällig, aber nicht vorübergehend zufällig, Algorithmus für Stiftdruck, NIT -Bewegungsgeschwindigkeit usw. ist erforderlich. Und es ist besser, mechanischer Arm zu verwenden, um die Handschrift anstelle des Druckers zu simulieren.
Ich habe dieses Programm nur zum Spaß geschrieben und Charaktere lernt, die ein Prinzip tiefer durch das Üben codieren. Um dies perfekt zu machen, ist es stattdessen keine gute Idee, C ++ und HTML zu verwenden.
Handschreiber geschrieben von Innilium. Alle Schriftstellungen stammen aus dem Internet, einer chinesischen Schriftart aus Hanyi.