將與LED矩陣時鐘和其他LED矩陣項目一起使用的字體
這些字體是考慮到LED矩陣時鐘設計的,尤其是使用EspHoMaTriXv2或EspHome-Led-PixelClock單元。它們是BDF和TTF字體,因此可以通過Esphome(也許還有Arduino)直接實現。
因為這些是位圖字體,所以這些字體的大小是像素固定的。它們不可解析。這是一件好事。
大多數字符將是3個像素寬,但是某些字符(例如G和M和&&)更寬。標點符號通常為1或2像素寬。所有字符在右側都有1個空列,除了正好是2個像素,某些Unicode連字符的空間,也許還有一些Ognok濃縮的拉丁字符。
在有時間的情況下,我將繼續在字體中添加字符。如果您希望您的語言成為優先級,或者需要添加某些某些字符,請打開問題,我會看看我能做什麼。
使用8行矩陣的全高度時適合
一切都大而塊狀 - 時間屏幕看起來很棒

[BDF下載| TTF下載]
基線下方通常保留用於尾巴,但使用“ X”字體,沒有基線 - 一切都佔用了整個8排像素

[BDF下載| TTF下載]
大多數角色已經減輕和風格化

[BDF下載| TTF下載]
在8個完整行中進行了減輕和風格化 - 在信息屏幕上看起來真的很好!

[BDF下載| TTF下載]
在8行矩陣上使用時間下的工作日頻段時適合
請注意,將非X字體中的許多重音字符推到基線下方,以使它們看起來略微糟糕。
一切都大而塊狀

[BDF下載| TTF下載]
大而塊狀的6排

[BDF下載| TTF下載]
減輕和風格化

[BDF下載| TTF下載]
減輕和風格為6排

[BDF下載| TTF下載]
為了減少字體在編譯期間佔用的空間,請使用代碼:
font:
- file: fonts/MatrixLight6.bdf
id: special_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
如果使用TTF文件,則必須指定字體大小:
font:
- file: fonts/MatrixLight8.ttf
id: default_font
glyphs: |
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz°
size: 8
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¦§©ª«®°±²³´µ¶¥·¹º»¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
由於存在BDF-Pillow缺陷(見下文),我在拉丁語擴展中製作了一些“無用”角色 - 看起來像其他東西。如果您在字形列表中和家庭助理中使用這些特殊字符,則仍然可以使用BDF文件。
¨¬¯¸¼½¾
| 特點 | 出現為 |
|---|---|
¨ | ₿比特幣 |
¸ | ξ以太坊 |
¬ | ℃學位c |
¯ | ℉學位f |
¼ | 歐元 |
½ | ₩贏 |
¾ | Hryvnia |
ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ
АаБбВвГ㥴ДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΤΥΦΧΨΩΆΈΉΊΌΎΏΪΫαβγδεζηθικλμνξοπρςστυφχψωάέήίϊϋόύώ
請注意,這些實際上並未受到實際希臘人的眼光測試。請讓我知道他們是否還可以!
越南人使用這些字符,已經存在於基本拉丁語和擴展A集中:
ABCDEGHIKLMNOPQRSTUVXYabcdeghiklmnopqrstuvxyÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãèéêìíòóôõùúýĂăĐđĨĩŨũ
以及這些:
ƠơƯưẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ
請注意,這些實際越南人尚未對這些。請讓我知道他們是否還可以! Chunky8中的許多字符(以及Light8中的一些字符)必須在基線以下推動,以使重音成為可能。 8x字體可能還可以。我確實想知道帶有角或點的元音是否實際上是清晰的(特別是O的O在7896至7907的位置)。
請注意,這些字符比標準字符寬得多,因為尾巴,人員和曲線對IPA非常重要。它們主要基於Light8樣式,並且在所有8個系列字體中都是相同的。
IPA主要使用這些字符:
ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɪɫɬɭɮɯɰɱɲɳɴɵɶɸɹɺɻɼɽɾɿʀʁʂʃʄʅʈʉʊʋʌʍʎʏʐʑʒʔʕʘʙʚʛʜʝʟʡʢ
如果您無法顯示所有字符,具體取決於您的需求,可以嘗試添加過時的字符:
ɩɷʆʇʓʖʗʞʠʣʤʥʦʧʨ
可能是無序的語音字符:
ʩʪʫʬʭ
最後,官方學的增加:
ʮʯ
오후전일월화수목금토요
一二三四五六天七八九十星期月上下午
請注意,上下午被擠壓了一點,以便更輕鬆地顯示上午&下午。
常規空間(大多數鍵盤上的可用空間)為2像素寬。這是其他一些可用的空間。
| 空間 | 姓名 | Unicode | 寬度 |
|---|---|---|---|
| 稀薄的空間 | U+2009 | 1像素 |
| en空間 | U+2002 | 3像素 |
| em空間 | U+2003 | 4個像素 |
如果這些空間對您沒有用(它們是看不見的,而Esphome可能會將其視為空間),則這裡是使用Unicode封閉數字集的其他一些可用空間。
⓪①②③④⑤⑥⑦⑧⑨⑩
| 空間 | 姓名 | Unicode | 空間寬度 |
|---|---|---|---|
⓪ | 盤旋0 | U+24EA | 0像素 |
① | 盤旋1 | U+2460 | 1像素 |
② | 盤旋2 | U+2461 | 2個像素 |
③ | 盤旋3 | U+2462 | 3像素 |
④ | 盤旋4 | U+2463 | 4個像素 |
⑤ | 盤旋5 | U+2464 | 5像素 |
⑥ | 盤旋6 | U+2465 | 6個像素 |
⑦ | 盤旋7 | U+2466 | 7像素 |
⑧ | 盤旋8 | U+2467 | 8像素 |
⑨ | 盤旋9 | U+2468 | 9像素 |
⑩ | 盤旋10 | U+2469 | 10像素 |
常規的低音(在大多數鍵盤上都可以使用)是3個像素寬,還有一個空間。這是其他一些可用的標點符號。
‐–—―•
| 標記 | 姓名 | Unicode | 寬度 |
|---|---|---|---|
‐ | 過度 | U+2010 | 1像素寬,沒有空間 |
– | EN腫瘤 | U+2013 | 2個像素寬 +空間 |
— | Em連字符 | U+2014 | 4像素寬 +空間 |
― | 單槓 | U+2015 | 4像素寬,沒有空間 |
• | 子彈 | U+2022 | 1像素寬 +空間 |
₡₢₦₩₪₫€₭₮₱₲₴₵₸₹₺₼₽₾₿
℃℉
如果您所要求的角色不可用,則可能會出現其中一個字符。
| 外貌 | 姓名 | Unicode |
|---|---|---|
![]() | 無效的 | U+0000 |
![]() | 白盒 | U+25A1 |
![]() | 未知角色 | u+fffd |
請注意,在試圖顯示一個實際未知的字符時,將它們添加到大聲的字形列表中似乎沒有幫助(我的時鐘只是繪製了寬的塊),但無論如何,這是後兩個(Null null null null null不可用):
□�
字形列表中實際上不在字體中的任何字符都會導致編譯時eSphome出錯。字形列表中未包含的任何特徵都應導致時鐘顯示錯誤和/或塊或空白。
另請注意,可以使用256個字符的限制。這是Pillow設定的硬限制,這是一種python的依賴性,可將字體轉換為Exphome可用的位圖。如果您的字形列表更長,那麼超出該限制的任何字符將根本不會顯示。
UnicodeEncodeError: 'latin-1' codec can't encode character 'u0416' in position 0: ordinal not in range(256)
如果字符列表不符合其期望,則此錯誤與枕頭解釋BDF字體文件的方式有關。由於枕頭的那部分很古老,因此似乎沒有興趣將其修復以符合UTF標準。因此,如果您想使用Unicode字符(拉丁語基本和擴展A之外的任何內容),則必須使用TTF文件。
這些TTF文件不可能由Windows使用,因為它們僅包含位圖。編輯字體時,它們也不是很有用。因此,BDF文件將始終被視為主文件。
使用Esphomatrix時,請檢查是否在您的yaml中(根據需要進行編輯):
ehmtxv2:
default_font_id: default_font
default_font_yoffset: 6
special_font_id: special_font
special_font_yoffset: 8
請注意,yoffset可能很棘手。您應該使用與字體基線相對應的數字。對於這些字體,實際上在字體基線下沒有什麼。我已經設計了字體,因此非X字體實際上是在基線上方升高1像素的1像素,因此尾巴出現正確。
如果您希望添加一個字符,請打開問題,提出請求!請保持您的溝通線路打開,因為我不太熟悉您的語言,我會有問題!
查看fontforge:https://fontforge.org/en-us/
Andrew J.Swan在西里爾角色方面提供了巨大的幫助。
最初,我將湯姆·拇指用作基礎。可能仍然有一些相似之處,但這僅僅是因為對於如此有限的像素,您只能做很多事情。但是,如果您對4x6(3x5可用)單體字體感興趣,則可以單擊此處。
另外,從Dalmoori Font借來了一些韓國角色的靈感,這是一種非常不錯的Hangul Pixel字體。
中文字符幾乎是從精品Bitmap 7x7字體複製的,這是一種中國像素字體,並在X系列中伸展了一點。