如何使用像素化字体在文本上强制边缘清晰

How to force crisp edges on text with pixelated fonts

提问人:Joeytje50 提问时间:8/14/2023 最后编辑:Joeytje50 更新时间:8/15/2023 访问量:106

问:

我正在尝试制作使用像素化字体的东西,但我似乎无法让像素保持清晰。当使用像素化字体时,它只是添加了某种抗锯齿,即使我明确希望它使用清晰的像素。

@import url(https://db.onlinewebfonts.com/c/d14098fec1a21bb32ccb0ee2ab07bb09?family=Pixelated+Display);

body {
  font-family: "Pixelated Display";
  font-size: 12pt;
  font-smooth: never; /* doesn't work outside macOS */
  -webkit-font-smoothing: none; /* doesn't work outside macOS */
  image-rendering: crisp-edges; /* doesn't affect fonts */
}
Lorem ipsum dolor sit amet, CONSECTETUR ADIPISCING ELIT.

上面,我包含了一个演示,该演示使用来自互联网的随机像素化字体(来源)。但是,在截取结果时,您可以看到文本并不像我想要的那样清晰,而是似乎被涂抹在多个像素上。要更轻松地查看此内容,只需截取文本的屏幕截图,然后将其粘贴到任何图像编辑器中,然后放大即可。这将导致以下结果:

What the text looks like

但是,我想要的是像素化字体......像素化。如果我必须为此使用特定的字体大小,我完全赞成,但到目前为止,我还没有找到任何资源来使这个文本变得清晰,保持应有的像素化。正如您在代码段的 css 中看到的那样,和样式似乎根本不会影响文本(至少,不是在所有操作系统上)。image-renderingfont-smooth

我尝试更改的网站上的现场演示是此页面,但由于该网站的 CSP,我无法在此处导入相同的字体。正如您在图像顶部(嵌入到图像中的文本)所看到的,顶行比图像的其余部分(放置在图像顶部的文本)要清晰得多。

CSS 网络字体

评论

0赞 Chris Barr 8/15/2023
这可能取决于您使用的浏览器或操作系统。当您在源网站上查看字体时,它在那里看起来是否正确?当我在您的演示代码中增加字体大小时,边缘对我来说看起来非常清晰。我在 Windows 11 上使用 Firefox。
0赞 jagmitg 8/15/2023
Mac OSX 在这里 - Chrome - 非常清晰。努力重建它。
0赞 Joeytje50 8/15/2023
@ChrisBarr链接的网站也无法正常工作。在 Windows 中,如果您截取演示网站的屏幕截图(确保将字体大小设置为 ~10px 左右),然后将该屏幕截图粘贴到图像编辑程序(例如 paint)中。然后从那里放大。它看起来不会那么清晰。源站点的字体大小滑块或编辑我的代码以增加字体大小的问题在于浏览器的渲染不会放大相同的模糊度。但是,在DPI相对较低的显示器上,对于较小的字体,像素略微模糊是非常明显的。
0赞 Chris Barr 8/15/2023
我认为您只是在描述 Windows ClearType,它在 Windows 中默认启用。你可能想看看这个问题:stackoverflow.com/questions/52899904/......
0赞 Joeytje50 8/15/2023
@ChrisBarr我认为这与我的问题并不是一回事。这个问题确实需要抗锯齿,而我实际上想要锯齿(即禁用抗锯齿)。我已经编辑了我的问题,以获取指向我需要此内容的网站上的演示的链接。正如您(可能)看到的,图像文本本身的清晰度与放置在其顶部的 HTML 文本之间存在非常明显的差异。那是因为 HTML 文本以某种方式具有某种抗锯齿效果或某种模糊性。尽管字体本身是完全像素化的。

答: 暂无答案