【问题标题】:Bad SVG text quality in OperaOpera 中的 SVG 文本质量不佳
【发布时间】:2013-02-13 19:47:18
【问题描述】:

我正在尝试渲染包含一些文本的 SVG 文档。 Chrome/FF/Safari 中的一切都很好:

但是在 Opera (v12.14, Mac OS X) 字体看起来很丑:

这是正常的还是我做错了什么?是否可以提高渲染质量?代码如下:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="400" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg">
    <text x="10" y="30" font-family="Arial" font-size="12" font-weight="bold">123 xyz XYZ</text>
    <text x="10" y="50" font-family="Arial" font-size="12" font-weight="bold" fill="#666">123 xyz XYZ</text>
    <text x="10" y="70" font-family="Arial" font-size="12" font-weight="normal" fill="#444">123 xyz XYZ</text>
    <text x="10" y="88" font-family="Arial" font-size="10" font-weight="normal" fill="#444">123 xyz XYZ</text>
</svg>

我试过了:

  • 使用@font-face嵌入字体;
  • 使用 Arial 以外的字体;
  • 设置text-rendering="optimizeLegibility"

这些都没有帮助。

编辑

解决方案是使用text-rendering="geometricPrecision"(参见 Erik Dahlström 的回答):

结果仍然比其他浏览器差,但目前看来它是 Opera for Mac OS 中所能获得的最好结果。

我还尝试将内容双向翻译 0.5 像素。它稍微改变了输出,但总体上不会提高质量。

【问题讨论】:

  • 你试过 text-rendering="geometricPrecision" 吗?这是在视网膜屏幕上吗?
  • @ErikDahlström,不,不知何故我错过了它。屏幕是非视网膜的,带有标准。解决。使用 text-rendering="geometricPrecision" 它看起来好多了,谢谢!您能否将此作为答案发布,以便我接受?我会更新我的问题以显示结果。

标签: svg opera


【解决方案1】:

Mac 上 SVG 内的文本似乎禁用了亚像素文本渲染。

解决方法是指定text-rendering="geometricPrecision"。这使得 Opera 使用字形轮廓进行渲染,而不是将文本渲染推迟到平台。但是,请注意,这通常往往会稍微降低性能。另请注意,使用geometricPrecision 不会在 Opera 中启用亚像素文本渲染,但文本通常看起来会有些不同(通常会根据像素网格对齐方式略有模糊)。

【讨论】:

  • 谢谢!使用这种解决方法,文本确实看起来有点模糊,但仍然比其他文本渲染模式好得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 2011-12-17
  • 2020-02-14
  • 2023-03-11
  • 1970-01-01
  • 2012-08-18
相关资源
最近更新 更多