acj/x5

递归像素字体。

1.27.0 2024-08-08 10:29 UTC

README

×5(读作五倍)是一种简单的字体,由5x5的方块网格构成。这个概念并不新颖:经验丰富的网络设计师可能会记得 Kottke的丝网印刷,但这种例子甚至可以追溯到包豪斯时期的瓷砖。这个版本的不同之处在于,网格被递归地用于构建更复杂的结构。这些结构是自相似的,从某种意义上说,它们的行为类似于分形。

尺寸

×5 不会使用传统意义上的字体大小,而是使用指数。×5 是最小的,而 ×5²(读作五倍平方)是下一个大小。

在理论上没有上限,但我自己从未超过 ×56,因为这由于指数增长而在多个原因上变得不切实际。

×51

u0020 u0021 u0022 u0023 u0024 u0025 u0027 u0028 u0029 u002b u002c u002d u002e u002f u0030 u0031 u0032 u0033 u0034 u0035 u0036 u0037 u0038 u0039 u003a u003b u003c u003d u003e u003f u0040 u0041 u0042 u0043 u0044 u0045 u0046 u0047 u0048 u0049 u004a u004b u004c u004d u004e u004f u0050 u0051 u0052 u0053 u0054 u0055 u0056 u0057 u0058 u0059 u005a u005b u005c u005d u005e u005f u007b u007c u007d u007e u00b0 u00b1 u00b7 u00f7 u2021 u2026 u20bf u2234 u2235 u221e u22ee u2302 u23cf u23f8 u23fb u25a0 u25a1 u24a3 u25ac u25ad u25ae u25af u25b2 u25b3 u25b4 u25b6 u25b7 u25bc u25bd u25f0 u25f1 u25f2 u25f3 u25c0 u25c1 u25c6 u25c7 u25e2 u25e3 u25e4 u25e5 u25eb u25fb u2609 u2630 u2631 u2632 u2633 u2634 u2635 u2636 u2637 u2661 u2665 u271d u130d1 22 ACJ AF code plusplus feed glider Hb LE notdef TH uni x5 blinker toad squared-circle n network battery identicon custom random tripletau wifi

×52

u0020 u0021 u0022 u0023 u0024 u0025 u0027 u0028 u0029 u002b u002c u002d u002e u002f u0030 u0031 u0032 u0033 u0034 u0035 u0036 u0037 u0038 u0039 u003a u003b u003c u003d u003e u003f u0040 u0041 u0042 u0043 u0044 u0045 u0046 u0047 u0048 u0049 u004a u004b u004c u004d u004e u004f u0050 u0051 u0052 u0053 u0054 u0055 u0056 u0057 u0058 u0059 u005a u005b u005c u005d u005e u005f u007b u007c u007d u007e u00b0 u00b1 u00b7 u00f7 u2021 u2026 u20bf u2234 u2235 u221e u22ee u2302 u23cf u23f8 u23fb u25a0 u25a1 u24a3 u25ac u25ad u25ae u25af u25b2 u25b3 u25b4 u25b6 u25b7 u25bc u25bd u25f0 u25f1 u25f2 u25f3 u25c0 u25c1 u25c6 u25c7 u25e2 u25e3 u25e4 u25e5 u25eb u25fb u2609 u2630 u2631 u2632 u2633 u2634 u2635 u2636 u2637 u2661 u2665 u271d u130d1 22 ACJ AF code plusplus feed glider Hb LE notdef TH uni x5 blinker toad squared-circle n network battery identicon custom random tripletau wifi

×53

u0020 u0021 u0022 u0023 u0024 u0025 u0027 u0028 u0029 u002b u002c u002d u002e u002f u0030 u0031 u0032 u0033 u0034 u0035 u0036 u0037 u0038 u0039 u003a u003b u003c u003d u003e u003f u0040 u0041 u0042 u0043 u0044 u0045 u0046 u0047 u0048 u0049 u004a u004b u004c u004d u004e u004f u0050 u0051 u0052 u0053 u0054 u0055 u0056 u0057 u0058 u0059 u005a u005b u005c u005d u005e u005f u007b u007c u007d u007e u00b0 u00b1 u00b7 u00f7 u2021 u2026 u20bf u2234 u2235 u221e u22ee u2302 u23cf u23f8 u23fb u25a0 u25a1 u24a3 u25ac u25ad u25ae u25af u25b2 u25b3 u25b4 u25b6 u25b7 u25bc u25bd u25f0 u25f1 u25f2 u25f3 u25c0 u25c1 u25c6 u25c7 u25e2 u25e3 u25e4 u25e5 u25eb u25fb u2609 u2630 u2631 u2632 u2633 u2634 u2635 u2636 u2637 u2661 u2665 u271d u130d1 22 ACJ AF code plusplus feed glider Hb LE notdef TH uni x5 blinker toad squared-circle n network battery identicon custom random tripletau wifi

×54

u0020 u0021 u0022 u0023 u0024 u0025 u0027 u0028 u0029 u002b u002c u002d u002e u002f u0030 u0031 u0032 u0033 u0034 u0035 u0036 u0037 u0038 u0039 u003a u003b u003c u003d u003e u003f u0040 u0041 u0042 u0043 u0044 u0045 u0046 u0047 u0048 u0049 u004a u004b u004c u004d u004e u004f u0050 u0051 u0052 u0053 u0054 u0055 u0056 u0057 u0058 u0059 u005a u005b u005c u005d u005e u005f u007b u007c u007d u007e u00b0 u00b1 u00b7 u00f7 u2021 u2026 u20bf u2234 u2235 u221e u22ee u2302 u23cf u23f8 u23fb u25a0 u25a1 u24a3 u25ac u25ad u25ae u25af u25b2 u25b3 u25b4 u25b6 u25b7 u25bc u25bd u25f0 u25f1 u25f2 u25f3 u25c0 u25c1 u25c6 u25c7 u25e2 u25e3 u25e4 u25e5 u25eb u25fb u2609 u2630 u2631 u2632 u2633 u2634 u2635 u2636 u2637 u2661 u2665 u271d u130d1 22 ACJ AF code plusplus feed glider Hb LE notdef TH uni x5 blinker toad squared-circle n network battery identicon custom random tripletau wifi

×55

u0020 u0021 u0022 u0023 u0024 u0025 u0027 u0028 u0029 u002b u002c u002d u002e u002f u0030 u0031 u0032 u0033 u0034 u0035 u0036 u0037 u0038 u0039 u003a u003b u003c u003d u003e u003f u0040 u0041 u0042 u0043 u0044 u0045 u0046 u0047 u0048 u0049 u004a u004b u004c u004d u004e u004f u0050 u0051 u0052 u0053 u0054 u0055 u0056 u0057 u0058 u0059 u005a u005b u005c u005d u005e u005f u007b u007c u007d u007e u00b0 u00b1 u00b7 u00f7 u2021 u2026 u20bf u2234 u2235 u221e u22ee u2302 u23cf u23f8 u23fb u25a0 u25a1 u24a3 u25ac u25ad u25ae u25af u25b2 u25b3 u25b4 u25b6 u25b7 u25bc u25bd u25f0 u25f1 u25f2 u25f3 u25c0 u25c1 u25c6 u25c7 u25e2 u25e3 u25e4 u25e5 u25eb u25fb u2609 u2630 u2631 u2632 u2633 u2634 u2635 u2636 u2637 u2661 u2665 u271d u130d1 22 ACJ AF code plusplus feed glider Hb LE notdef TH uni x5 blinker toad squared-circle n network battery identicon custom random tripletau wifi

标记

在网页上使用这种字体的最简单方法是将符号作为图像包含在内

<img alt="A" src="https://x5.acjs.net/images/x5-n<var>power</var>-<var>key</var>.png">

…其中 {power} 代表迭代次数或图像大小的数字(介于1和5之间),而 {key} 代表要渲染的字符。这可以是带有前缀 u 的Unicode代码点,或者它是特殊字符之一的名字。

<!-- Render a capital A at size/iteration 3. -->
<img alt="A" src="https://x5.acjs.net/images/x5-n3-u0041.png">

安装

可以使用 Composer 安装×5

composer require acj/x5

这将在 dist 文件夹中提供所有静态图像文件,并允许访问可以用于生成字符的 X5 类。

使用

// Render a letter A, based on its Unicode codepoint.
$x5 = new \Acj\X5\X5(0x41);
$x5->parse();
// Render an Identicon based on a string, like a username of email address.
$username = 'john-doe';

$x5 = new \Acj\X5\X5('identicon');
$x5->setIdentifier($username);
$x5->parse();
// Render a custom glyph based on a binary string, where every 0 represents an empty block.
$x5 = new \Acj\X5\X5('custom');
$x5->setInput('1111110001101011000111111');
$x5->parse();

网站

这个字体有自己的微站 x5.acjs.net。它有自己的代码库 gitlab.com/acjs/x5.acjs.net(私有)。