ที่เก็บนี้กำหนดวิธีการสร้างและปรับใช้แบบอักษรเพื่อใช้กับไดรเวอร์การแสดงผล micropython ยูทิลิตี้พีซีทำให้ไฟล์ฟอนต์มาตรฐานอุตสาหกรรมเป็นบิตแมปในรูปแบบของ Python Sourcecode โมดูล micropython ช่วยให้ไฟล์ดังกล่าวสามารถแสดงบนอุปกรณ์ที่มีไดรเวอร์อุปกรณ์ที่เหมาะสม เหล่านี้รวมถึงจอแสดงผล OLED โดยใช้ชิป SSD1306 และไดรเวอร์อุปกรณ์อย่างเป็นทางการ ไดรเวอร์ที่เข้ากันได้สำหรับเทคโนโลยีการแสดงผลที่หลากหลายนั้นมีอยู่เป็นส่วนหนึ่งของที่เก็บนาโน-Gui
โดยทั่วไปแล้วแพลตฟอร์ม Micropython มี RAM จำกัด แต่มีที่เก็บข้อมูลมากมายในรูปแบบของหน่วยความจำแฟลช ไฟล์ตัวอักษรมีแนวโน้มที่จะค่อนข้างใหญ่ เทคนิคทั่วไปของการเรนเดอร์สตริงไปยังอุปกรณ์เกี่ยวข้องกับการโหลดตัวอักษรทั้งหมดลงใน RAM นี่คือความรวดเร็ว แต่มีความเข้มข้นของราม ทางเลือกของการจัดเก็บแบบอักษรเป็นไฟล์การเข้าถึงแบบสุ่มและโหลดร่ายมนตร์แต่ละตัวลงใน RAM on Demand นั้นช้าเกินไปสำหรับประสิทธิภาพที่สมเหตุสมผลบนอุปกรณ์แสดงผลส่วนใหญ่
ทางเลือกนี้ใช้ฟอนต์เป็นไฟล์แหล่งงูหลามโดยมีข้อมูลที่ถูกประกาศว่าเป็นวัตถุ bytes ไฟล์ดังกล่าวอาจถูกแช่แข็งเป็น bytecode: สิ่งนี้เกี่ยวข้องกับการสร้างเฟิร์มแวร์จากแหล่งที่มาด้วยไฟล์ Python ในไดเรกทอรีเฉพาะ ในการนำเข้า RAM น้อยมากใช้ แต่ข้อมูลอาจเข้าถึงได้อย่างรวดเร็ว โปรดทราบว่าการใช้รหัสไบต์แช่แข็งเป็นทางเลือกทั้งหมด: ไฟล์ตัวอักษรอาจถูกนำเข้าด้วยวิธีปกติหากการใช้ RAM ไม่ใช่ปัญหา
ไฟล์ผลลัพธ์สามารถใช้งานได้ด้วยไดรเวอร์อุปกรณ์แสดงผลสองแบบ:
framebuffer อย่างเป็นทางการประกอบด้วยสี่องค์ประกอบลิงก์ไปยังเอกสารด้านล่าง:
Writer ยูทิลิตี้บรรทัดคำสั่งนี้เขียนใน Python 3 และทำงานบนพีซี ในการแปลงฟอนต์ที่ปรับขนาดได้เป็น Python ยูทิลิตี้จะใช้อินพุตไฟล์ตัวอักษรในรูปแบบ ttf หรือ otf พร้อมกับความสูงเป็นพิกเซลและส่งออกไฟล์ต้นฉบับ Python ที่มีฟอนต์เป็นบิตแมป รองรับการแสดงระดับเสียงคงที่และแปรผัน การออกแบบมีจุดมุ่งหมายดังต่อไปนี้:
ครั้งแรกทำได้โดยการจัดหาอาร์กิวเมนต์เฉพาะฮาร์ดแวร์ให้กับยูทิลิตี้ สิ่งเหล่านี้กำหนดการแมปแนวนอนหรือแนวตั้งและลำดับบิตสำหรับข้อมูลแบบอักษร
ครั้งที่สองทำได้โดยใช้ Freetype และ Freetype Python Bindings การใช้งานมีการบันทึกไว้ที่นี่ นอกจากนี้ยังมีรายละเอียดการวัดการใช้ RAM เมื่อนำเข้าแบบอักษรที่เก็บไว้เป็นไบต์แช่แข็ง
การแปลงไฟล์ ttf หรือ otf ที่ปรับขนาดได้จะทำงานได้ดีที่สุดสำหรับแบบอักษรขนาดใหญ่ สำหรับแบบอักษรขนาดเล็กควรใช้ไฟล์ตัวอักษรบิตแมปที่ออกแบบมาด้วยมือ ตอนนี้ได้รับการสนับสนุนแล้ว: ไฟล์ฟอนต์ bdf หรือ pcf อาจถูกแปลงเป็นแหล่ง Python ในรูปแบบเดียวกันกับไฟล์ที่มาจากแบบอักษรที่ปรับขนาดได้ ดูเพิ่มเติมที่ micropyezfonts ซึ่งรวมถึงแบบอักษรขนาดเล็กที่เข้ากันได้ (ใน examples/fonts )
Kerning ไม่ได้รับการสนับสนุน แบบอักษรหนึ่งบิตต่อพิกเซล จอแสดงผลสีได้รับการสนับสนุนโดยคลาส CWriter ซึ่งเพิ่มข้อมูลสีในขั้นตอนการแสดงผล นี่ถือว่าพิกเซลทั้งหมดของตัวละครมีสีเหมือนกัน
โดยค่าเริ่มต้น Utility font_to_py.py จะสร้างชุดอักขระ ASCII จาก chr(32) ถึง chr(126) รวม ตัวเลือกบรรทัดคำสั่งเปิดใช้งานการตั้งค่าอักขระให้แก้ไขเพื่อรวมอักขระ Unicode โดยพลการ อาจมีการระบุชุดทางเลือกเช่นสำหรับภาษาที่ไม่ใช่ภาษาอังกฤษ การสนับสนุนที่มีประสิทธิภาพมีให้สำหรับชุดอักขระที่กระจัดกระจาย
ไฟล์ตัวอักษรจะถูกนำเข้าในลักษณะปกติเช่น import font14 ไฟล์ Fython Font มีฟังก์ชั่นต่อไปนี้ ค่าส่งคืนเหล่านี้กำหนดโดยอาร์กิวเมนต์ที่มีให้กับ font_to_py.py :
height คืนความสูงเป็นพิกเซล
max_width ส่งคืนความกว้างสูงสุดของร่ายมนตร์ในพิกเซล
baseline ชดเชยจากด้านบนของ Glyph ไปยังพื้นฐาน
hmap จะส่งคืน True ถ้าตัวอักษรถูกแมปในแนวนอน
reverse ส่งคืน True หากระบุการกลับรายการบิต
monospaced กลับมา True หากระบุการแสดงผล monospaced
min_ch ส่งคืนค่าลำดับของอักขระต่ำสุดในไฟล์
max_ch ส่งคืนค่าลำดับของอักขระสูงสุดในไฟล์
ร่ายมนตร์จะถูกส่งกลับด้วยฟังก์ชั่น get_ch อาร์กิวเมนต์ของมันคืออักขระ Unicode และส่งคืนค่าต่อไปนี้:
memoryview ที่มี Glyph bytes ยูทิลิตี้ font_to_py.py อนุญาตให้ระบุ glyph เริ่มต้น (โดยทั่วไป ? ) หากเรียกด้วยตัวละครที่ไม่ได้กำหนดร่ายมนตร์นี้จะถูกส่งกลับ
ฟังก์ชั่น min_ch และ max_ch ส่วนใหญ่เกี่ยวข้องกับชุดอักขระที่ต่อเนื่องกัน
รหัสทั้งหมดถูกเผยแพร่ภายใต้ใบอนุญาต MIT