问题标签 [cleartype]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
14061 浏览

windows - 在 Windows 上使用 ClearType 使 CSS3 @font-face 字体渲染效果很好

首先是一些背景信息。

似乎使用 CSS3 @font-face 规则可以在任何浏览器、任何版本的 Windows(XP 及更高版本)上以意想不到的方式与 ClearType 字体呈现交互。

当我遇到它时,我首先将其记录为Google Font Directory 错误。进一步的研究似乎产生了相互矛盾的信息;启用或禁用 ClearType 可能有助于或损害 @font-face 字体在 Windows 中的任何 Web 浏览器中的呈现方式。ClearType 是帮助还是伤害似乎完全取决于所使用的字体,以及其中内置的提示类型。

例如,TypeKit 支持站点上的一个线程似乎指出当 ClearType 被禁用时出现字体渲染问题。但是,开发了一个jQuery 插件来改善 ClearType 启用时的字体呈现,但该插件仅适用于 Internet Explorer。有趣的是,插件演示页面上使用的字体在启用 ClearType 时渲染效果不佳,但在禁用它时,两个演示页面的渲染相同/正确。

因此,鉴于所有这些背景信息和先前的研究,我的问题是:

无论 Windows ClearType 设置如何,确保在所有平台上为现代浏览器提供良好字体渲染的最佳方式/妥协是什么?

我的第一个想法是使用默认包含 @font-face 字体的样式表。JavaScript 可以检测用户的操作系统,如果检测到 Windows,可以通过编程方式修改样式表类以使用不包含 @font-face 字体的字体系列,以便使用系统原生的后备字体。后来我意识到,其他人也想到了这一点。不过,这是一个笨拙且不雅的解决方案。理想情况下,我希望我的网络字体无论平台如何都可以使用,而不依赖于 sIFR 或 Cufon 之类的东西。

有没有人有指针或更好的想法?

0 投票
2 回答
902 浏览

css - Firefox 中的链接文本颜色错误

好吧,最奇怪的事情......

在家工作并在 Firefox 3.6 中打开 html 文档,我的链接文本颜色错误,看起来是多色的。

有任何想法吗?

在我的工作机器上的 IE、Chrome、Opera 和 Firefox 3.6 中看起来不错。我的意思是差异非常糟糕。在此处输入图像描述

在此图中,括号中的数字应为简单的浅灰色 (#999),链接文本应为蓝色 (#034ea2)。但是正如你所看到的,它全部变得奇怪,绿色和黄色,忘记了悬停状态......我通过 CSS 在文本上使用百分比大小 - 但这不应该这样做,不是吗?

这台机器确实与我的正常工作机器不同,但我认为这不是 Windows 设置,因为颜色在其他浏览器中看起来不错。

这似乎是一个古老的 IE 问题——所以我很惊讶,好的 ole FF 正在对我做这件事。

有任何想法吗?

Windows Cleartype 是问题所在。上周我进行的任何数量的 Windows 更新都必须在我的家用计算机上重置。谢谢乔舒斯曼!有时最简单的事情是最难找到的解决办法。

0 投票
1 回答
4164 浏览

internet-explorer - 使用 Internet Explorer 过滤器和 ClearType

我已经详细阅读了有关 IE 在使用过滤器时禁用 ClearType 的问题,我希望我的结论是错误的。在应用过滤器(例如ShadowAlpha)后,似乎不可能重新打开 ClearType 。是这样吗?

现在所有其他浏览器都支持text-shadow,我真的希望能够使用它,在必要时使用 IEShadowDropShadow过滤器。但是对文本应用任何过滤器都会让它看起来很糟糕。

有没有办法在 Internet Explorer 中同时启用 ClearType 和过滤器?

一些资料来源:

0 投票
2 回答
1319 浏览

wpf - 将 FlowDocument 放置在带有自定义玻璃的窗口中时,子元素中的 ClearType 会丢失

所以新的 WPF 4 文本渲染看起来很棒,但是在窗口上启用航空玻璃效果需要您将背景更改为透明,这当然会禁用 ClearType 渲染。

使用提供的 RenderOptions.ClearTypeHint=Enabled 允许您指定子元素以从树中的该点重新启用 ClearType 渲染。我发现了一些其他主题,这些主题讨论了为 RichTextBox 和 FlowDocumentScrollViewer 内部使用的 ScrollViewer 执行此操作,并且创建自定义样式确实可以修复它,以便我的 FlowDocument 再次获得 ClearType 呈现。

但是,这仅适用于 FlowDocument 中的顶级段落。如果我添加浮点数或数字或表格,其中的任何文本都会再次出现莫名其妙的灰度。我知道玻璃效果是罪魁祸首,因为禁用它会重新启用 ClearType 渲染。

我用 Snoop 浏览了可视化树,但主要内容(正确渲染)和子内容(灰度)都具有相似的元素层次结构,没有任何我可以附加 RenderOptions.ClearTypeHint 的东西。

有没有人遇到过这个问题?有解决方法或解决方案吗?我检查了 Connect,但没有提交任何关于此的错误。这是一个相当烦人的问题。

0 投票
1 回答
592 浏览

c# - 渲染系统控制类外的字体

很长一段时间以来,我一直在尝试找到解决“per-appllication cleartype fonts”问题的方法。

我想为 a 或 a 或任何其他非自定义/库存控件实现TextBoxcleartypeButton字体ComboBox

好吧,我知道有一种简单的方法可以实现这一点,那就是覆盖 OnPaint 方法:

这工作得很好,但问题是我想在不继承任何这些控件的情况下做到这一点,并以某种方式从类外部更改字体属性。

到目前为止,我使用的方法没有多大成功,是安装一个“挂钩程序”并监听发送到控件的消息。下面的代码是以下代码的一部分Form1 class

这件作品非常适用于使用 CreateWindow/CreateWindowEx 函数创建的窗口,或者如果Paint event将由用户处理自定义绘画,但我希望将所有绘画留给系统,只更改字体而无需任何其他干预到控制。

这种方法应该有效吗?如果没有,有人可以解释我为什么吗?我知道当系统绘制控件时,它使用由Control.Font类的属性设置的字体,但是,它不应该也使用窗口消息中的字体呈现吗?当类在方法中处理系统消息时,它不是在绘画WndProc时传递进来的数据Message.WParam & Message.LParam吗?WndProc

例如。绘制文本时,系统不应该使用 WM_GETFONT 来使用适当的字体吗?我不知道任何将字体渲染设置在类之外的 Control 属性。

这个问题还有其他解决方案吗?

0 投票
3 回答
25366 浏览

wpf - 在 IE9 中禁用 Cleartype(文本抗锯齿)

IE9 忽略了操作系统范围的字体平滑设置(也称为抗锯齿),这是有据可查的(例如这里)。即使在 Windows 中禁用了字体平滑和 ClearType,IE 仍然显示抗锯齿字体,一些用户难以阅读,尤其是在小字体时。

如何在 IE9 中禁用所有字体抗锯齿(ClearType 或其他)?

更多细节:

我们公司构建了一个使用大量小字体的 Web 应用程序。随着 IE9 的发布,我们的一些用户抱怨 IE9 的默认抗锯齿功能使我们的小字体变得模糊或模糊。所以我们需要帮助那些已经安装了 IE9 并且想要关闭抗锯齿功能的用户。

另外,就我个人而言,我在阅读小的抗锯齿字体时遇到了麻烦,所以我想要一个我自己使用的解决方案,即使对于我无法控制的网站也是如此。

在 IE8 中,我可以取消选中“始终为 HTML 使用 ClearType”,然后在操作系统中禁用 ClearType,IE8 将显示所有字体别名。但在 IE9 中,缺少此选项。

在对这个问题进行一些研究之后,我了解到:核心问题是 IE 依赖 DirectWrite 进行文本渲染,并且不支持任何更新的渲染选项,这些选项将在没有抗锯齿的情况下绘制文本并尊重用户的操作系统-广泛的默认选择。

更糟糕的是,如果您在操作系统中禁用 ClearType,在某些情况下 IE 将回退到 DirectWrite 的默认非 cleartype 抗锯齿,这甚至比 ClearType 更模糊。

0 投票
7 回答
14365 浏览

internet-explorer-9 - IE 9 在某些条件下不使用亚像素抗锯齿

【原标题:IE 9文字渲染很差;有解决方法吗?)

IE 9 在我的应用程序中呈现的文本非常糟糕。问题不在于我的显示器的清除类型设置,因为兼容模式下的 IE 9、Firefox 和 Chrome 都可以很好地呈现文本。以下是使用 IE 9、兼容模式下的 IE 9 和 Chrome 呈现文本的方式的并排比较:

即 9

IE 9 兼容模式

在此处输入图像描述

我尝试应用此答案,但它似乎不适用于 IE 7 之后的任何内容。有人知道我们可以应用于我们的网站以修复 IE 9 的错误文本呈现的任何变通方法吗?

编辑:

我已将问题页面归结为基本要素。如您所见,复制并不需要太多。如果 IE9 和 IE9 标准的文档模式,请确保 IE 具有浏览器模式:

0 投票
1 回答
2902 浏览

ipad - iPad上字体的亚像素渲染

像ClearType这样的亚像素字体渲染显着提高了字体显示分辨率并提高了屏幕可读性。我将如何编程字体的子像素渲染(通常),以及如何在 iPad(iOS 设备上的 C、C++ 或 Objective-C)上实现?iPad 上某些尺寸的字体非常模糊,我知道 iPad 的显示屏可以很好地使用这种技术......

那么,我将如何为 iPad 开发字体渲染引擎(例如,我如何访问子像素?我是否使用 OpenGL?是否存在用 C、C++ 或 Objective-C 编写的开源字体渲染引擎? Mac OS X?)?

0 投票
2 回答
709 浏览

windows - 谷歌网络字体在 Ubuntu 10 上看起来不错,在 Windows XP 上很奇怪

我的网站上的字体有一个奇怪的问题:我使用的是 Google 的 Web Font API,它在 Ubuntu 上的每个浏览器中看起来都很好,但在 Windows XP 上的每个浏览器中看起来都很奇怪,除了 IE8。我还没有机会在 Win7 上测试它。

我在 Ubuntu 的 Firefox 3.6.16 上的网站:

在此处输入图像描述

我在 Windows 的 Firefox 3.6.13 上的网站:

在此处输入图像描述

到底是怎么回事 ?这仅仅是一个 ClearType 问题吗?

0 投票
8 回答
30275 浏览

windows-7 - 在不注销的情况下启用/禁用 ClearType

我需要通过cmd(或任何脚本,如 VBS/JS)或从注册表启用/禁用 ClearType(或“调整 Windows 的外观和性能 > 屏幕字体的平滑边缘”),而无需注销或重新启动 Windows。

也许可以只为一个应用程序启用 ClearType。