将与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系列中伸展了一点。