خط شاشة الكمبيوتر
يُعدّ تنسيق خطوط شاشة الحاسوب ( PSF ) تنسيقًا لخطوط الصور النقطية، ويستخدمه نظام لينكس حاليًا لخطوط سطر الأوامر . يمكن الاطلاع على توثيق تنسيق ملف PSF ضمن شفرة المصدر لأدوات لوحة مفاتيح لينكس . [ 1 ] وقد وصفت جامعة آيندهوفن هذا التنسيق. [ 2 ]
تنسيق الملف
رأس الملف
يبدأ كل ملف PSF برأسية. يوجد نوعان من الرؤوس: PSF1 و PSF2. جميع الأعداد الصحيحة متعددة البايتات مرتبة حسب ترتيب البايتات الأقل أهمية (ترتيب البايتات الصغير).
| طول | وصف | ملحوظات |
|---|---|---|
| 2 | بايتات سحرية | دائماً36 04 |
| 1 | وضع خط PSF | علامات الخطوط المختلفة، انظر أوضاع الخطوط |
| 1 | حجم الرمز الرسومي | حجم الرمز الرسومي بالبايت، عدد صحيح غير مُوقّع من 8 بت. بالنسبة لـ psf1، يساوي حجم الحرف دائمًا ارتفاع الرمز الرسومي. |
| طول | وصف | ملحوظات |
|---|---|---|
| 4 | بايتات سحرية | دائماً72 b5 4a 86 |
| 4 | إصدار | عدد صحيح غير مُوقّع 32 بت، قيمته الحالية دائمًا 0 |
| 4 | حجم رأس الصفحة | عدد صحيح غير موقع 32 بت، حجم رأس الملف بالبايت (عادةً 32) |
| 4 | الأعلام | عدد صحيح غير مُوقّع 32 بت، انظر علامات الخط |
| 4 | طول | عدد صحيح غير مُوقّع 32 بت، عدد الرموز الرسومية |
| 4 | حجم الرمز الرسومي | عدد صحيح غير مُوقّع 32 بت، عدد البايتات لكل رمز رسومي |
| 4 | ارتفاع | عدد صحيح غير مُوقّع 32 بت، ارتفاع كل رمز |
| 4 | عرض | عدد صحيح غير مُوقّع 32 بت، عرض كل حرف رسومي |
جميع رموز psf1 يبلغ عرضها 8 بكسل.
أوضاع الخطوط
نمط الخط في رأس ملف psf1 هو عدد صحيح غير مُوقّع من 8 بت يحتوي على علامات مختلفة حول الخط
| القيمة ( بالنظام الست عشري ) | اسم | معنى |
|---|---|---|
0x01 | PSF1_MODE512 | إذا تم ضبط هذا الخيار، فسيكون للخط 512 رمزًا. أما إذا لم يتم ضبطه، فسيكون للخط 256 رمزًا فقط. |
0x02 | PSF1_MODEHASTAB | إذا تم ضبط هذا الجزء، فسيكون لخط الوجه جدول يونيكود . |
0x04 | PSF1_MODESEQ | مكافئ لـ PSF1_MODEHASTAB |
علامات الخط
يحتوي حقل علامات الخط في رأس ملف PSF2 على عدد صحيح غير مُوقّع من 32 بت، يتضمن علامات مختلفة متعلقة بالخط. يوجد حاليًا علامة واحدة فقط.
| القيمة (بالنظام الست عشري) | اسم | معنى |
|---|---|---|
| 0x00000001 | جدول رموز يونيكود PSF2_HAS | إذا تم ضبط هذا الجزء، فسيكون لخط الوجه جدول يونيكود |
صور الملفات النقطية
تأتي بيانات الرسوميات الفعلية مباشرةً بعد العنوان. يُمثل كل بت في كل رسمية بكسلًا واحدًا في الخط: 0 للرسم غير المرسوم، و1 للرسم. يُضاف إلى كل صف من كل رسمية عدد صحيح من البايتات. على سبيل المثال، يحتوي خط بحجم 12×12 على بايتين لكل صف. قد يبدو الحرف 'A' في صورة نقطية PSF بحجم 12×12 كما يلي:
حشوة بيانات الخط | +----------+ +--+ 000001100000 0000 000011110000 0000 000110011000 0000 001100001100 0000 011000000110 0000 110000000011 0000 111111111111 0000 111111111111 0000 110000000011 0000 110000000011 0000 110000000011 0000 110000000011 0000
مع اثني عشر بتًا من البيانات الفعلية وحشو لملء كل صف إلى أقرب بايت. يتم تخزين الصفوف بدءًا من العمود الأيسر.
جدول يونيكود
إذا احتوى ملف PSF على جدول يونيكود، فإن لكل رمز رسومي مدخلاً في هذا الجدول، حيث يقابل الرمز الرسومي الأول المدخل الأول، والثاني المدخل الثاني، وهكذا. ويعتمد تنسيق المدخل في جدول يونيكود على نوع رأس ملف PSF.
جدول يونيكود PSF1
تُمثَّل المدخلات في جدول يونيكود لملف PSF1 كسلسلة من الأعداد الصحيحة غير الموقعة ذات 16 بت بنظام little-endian وتنتهي بـ 0xffff. تحتوي الأعداد الصحيحة الأولى في المدخل على حرف يونيكود يُمثَّل بالرسم التوضيحي المقابل. تستمر أحرف يونيكود هذه حتى 0xfffeيُصادف العدد الصحيح . بعد ذلك، بدءًا من القيمة 0xfffe، بدلاً من تمثيل أحرف يونيكود منفردة، تُمثِّل الأرقام سلسلة من أحرف يونيكود التي تُطابق الرسم التوضيحي ، حيث تبدأ سلسلة جديدة مع كل 0xfffeوتُصادف وتتوقف عند 0xffffمصادفة . على سبيل المثال، تُفسَّر سلسلة الأعداد الصحيحة غير الموقعة ذات 16 بت بنظام little-endian التالية بالطريقة التالية:
0xdead 0xbeef 0xfffe 0x3141 0x5926 0xfffe 0x1234 0x5678 0xffff
عند رؤية أي من U+dead، أو U+beefالتسلسل U+3141 U+5926، أو التسلسل ، اعرض الرمز الرسومي المقابل لإدخال جدول Unicode هذا.U+1234 U+5678
جدول يونيكود PSF2
تتشابه مدخلات جدول يونيكود في ملف PSF2 مع تلك الموجودة في ملف PSF1، باستثناء أن أحرف يونيكود تُمثَّل بنظام UTF-8 ، وتبدأ تسلسلات يونيكود بقيمة البايت الواحد 0xfe(بدلاً من قيمة البايتين 0xfffe)، وتنتهي مدخلات يونيكود بقيمة البايت الواحد 0xff(بدلاً من قيمة البايتين 0xffff). ولا يمكن أن تظهر أي من القيمتين 0xfeفي تسلسلات UTF-8 الصحيحة.
مراجع
- ↑ منظمة نواة لينكس (2007-01-28). "psf.h" .
- ↑ الثلاثاء (1999). "تنسيق psf" .
- تنسيقات الخطوط
- الخطوط النقطية
