.webpjson поддерживается Во -первых, вы должны загрузить handwriter.py или скопировать его исходный код для вас IDE. Если вы хотите использовать пользовательскую конфигурацию или пресеты шрифтов, просто клонируйте рукопистер напрямую:
gitclone https://github.com/Unbinilium/Handwriter.git
Во-вторых, установите зависимости, которые требуется почерк-Python3 :
pip3 install uuid pillow twine setuptools wheel tox pytest handright
В -третьих, введите путь почерка и запустите handwriter.py от python3 handwriter.py , следуйте советам, отображаемым в консоли. Он генерирует выходной файл .webp с использованием конфигурации по умолчанию.
И последнее, но не менее важное, чтобы избежать некоторых редких ошибок, убедившись, что имя вашего текстового файла *.txt , а имя и текст закодированы с UTF-8 . Для пользовательских шрифтов, пожалуйста, используйте файл TrueTypefont , какой расширение является .ttf , и я рекомендую использовать шрифты, связанные с почерком по умолчанию. Remmber outFilePath - это путь каталога, но не путь файла, OutFilEName автоматически генерируется UUID .
Для получения дополнительной настройки, пожалуйста, отредактируйте файл конфигурации 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 должен быть специализирован. Затем запустите handwriter.py с путем файла конфигурации аргумента от python3 handwriter.py <configuration file path> .
Определение параметров параметров базовых типов здесь. Для укрепления резкости и ясности текста, используя большой размер бумаги ( background_width , background_hight ) и Big font_size всегда рекомендуется. Пожалуйста, обратите внимание, что параметр 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 устанавливается на white , используя цветовой профиль RGBA и не стесняйтесь устанавливать цвет, специализируя имя цвета. Кроме того, 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>
Каждый аргумент разделен на космос и следуйте примеру последовательности, текстовый файл в <TEXT PATH> не может быть пустым, а <OUT PUT PATH> должен содержать имя файла с расширением файла .html , номер пути шрифтов ограничен размером 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 , размер шрифта и маржинальное пространство , отредактируйте #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.01Наконец, дважды щелкните, чтобы открыть сгенерированный HTML в вашем браузере , и распечатайте его с вашим принтером, фальшивый подарк получил!
В настоящее время почерк-CPP-это всего лишь очень простая идея, и в очень низком уровне завершения это на самом деле с очень неуклюжим алгоритмом. Для кого, как ваш учитель, может легко увидеть ваш трюк.
Для более действительно действительно генерации почерка требуется больше степени преобразования свободы, таких как горизонтальное положение, вертикальное положение и размер шрифта. И все каждое слово должно быть случайным образом нарушено, включая его угол вращения хода. Также требуется случайный, но не случайный, алгоритм для давления ручки, скорость перемещения NIT и так далее. И лучше использовать механическую руку для моделирования почерка вместо принтера.
Я написал эту программу просто для развлечения и изучаю персонажи, кодируя принцип глубже, практикуя. Очевидно, что для того, чтобы сделать это идеальным, использование C ++ и HTML-не очень хорошая идея, попробуйте вместо этого Рукопильный Python3 .
Рукоротник, написанный невинилием. Все предустановки шрифтов из Интернета, какой -то китайский шрифт от Hanyi.