.webp مباشرة من ملف نصي للطباعةjson المخصص مدعوم أولاً ، يجب عليك تنزيل handwriter.py أو نسخ رمز المصدر لك لك IDE. إذا كنت ترغب في استخدام التكوين المخصص أو الإعدادات المسبقة للخط ، فما عليك سوى استنساخ الكاتب اليدوية مباشرة:
gitclone https://github.com/Unbinilium/Handwriter.git
ثانياً ، قم بتثبيت التبعيات التي يتطلبها الكاتب اليدوي-بايثون 3 :
pip3 install uuid pillow twine setuptools wheel tox pytest handright
ثالثًا ، أدخل مسار الكاتب اليدوية وقم بتشغيل handwriter.py بواسطة python3 handwriter.py ، اتبع النصائح المعروضة في وحدة التحكم. يقوم بإنشاء ملف الإخراج .webp باستخدام التكوين الافتراضي.
أخيرًا وليس آخرًا ، لتجنب بعض الأخطاء النادرة ، التأكد من أن اسم الملف النصي الخاص بك هو *.txt ويتم ترميز كل من الاسم والنص باستخدام UTF-8 . للحصول على خطوط مخصصة ، يرجى استخدام ملف truetypefont أي امتداد هو .ttf ، وأوصي باستخدام الخطوط المحببة بخط اليد بشكل افتراضي. Remmber OutfilePath هو مسار دليل ولكن ليس مسارًا للملف ، يتم إنشاء الاسم الخارجي تلقائيًا بواسطة UUID .
لمزيد من التخصيص ، يرجى تحرير ملف تكوين الكاتب اليدوية -ثون 3 المسماة 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 ) ، يوصى دائمًا بـ 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 . احرص على أن يكون الكاتب اليدوية يتطلب مسار خط واحد على الأقل.
على سبيل المثال ، يمكننا استخدام 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 الذي تم إنشاؤه في متصفحك وطباعته بالطابعة ، حصلت على خط اليد المزيف!
يعد كتاب Handwriter-CPP حاليًا مجرد فكرة بسيطة للغاية وفي مستوى منخفض للغاية من الانتهاء ، فهو في الواقع مع خوارزمية خرقاء للغاية. لمن قد يرى مثل معلمك من خلال خدعة بسهولة.
لمزيد من توليد خط اليد حقًا ، يلزم إجراء المزيد من درجات الحرية ، مثل الموضع الأفقي ، والموضع الرأسي وحجم الخط. وينبغي أن يتم إزعاج كل كلمة بشكل عشوائي بما في ذلك زاوية دوران السكتة الدماغية. أيضا عشوائي ولكن ليس عشوائيا مؤقتا ، خوارزمية لضغط القلم ، وسرعة تحرك NIT وما إلى ذلك مطلوب. ومن الأفضل استخدام الذراع الميكانيكية لمحاكاة اليد بدلاً من الطابعة.
لقد كتبت هذا البرنامج فقط من أجل المتعة وتعلم الشخصيات تشفير مبدأ أعمق من خلال ممارسة. من الواضح أن جعل هذا الأمر مثاليًا ، باستخدام C ++ و HTML ليس فكرة جيدة ، يرجى تجربة كتاب اليد -ثون 3 بدلاً من ذلك.
الكاتب اليدوية المكتوبة بواسطة Unterinilium. جميع الإعدادات المسبقة للخطوط من الإنترنت ، وبعض الخط الصيني من Hanyi.