标签: text-rendering

Chrome中的Web字体

我有一个在Firefox上看起来很棒的webfont,而不是Chrome.我试过玩这个text-rendering房子,结果不那么引人注目.我的CSS是这样的:

@font-face {
    font-family: 'TextFont';
    src: url('[my font file url]') format('truetype');
    font-weight: normal;
    font-style: normal;
}
body {
    font-family: TextFont, Tahoma, Geneva, sans-serif;
    text-rendering: auto;
}
Run Code Online (Sandbox Code Playgroud)

改变text-rendering似乎没有在Firefox中做任何事情,所以我发布了一个截图.

结果:

  • Firefox(又名"应该是什么样子")

    在此输入图像描述

  • Chrome - text-rendering: auto

    在此输入图像描述

  • Chrome - text-rendering: optimizeLegibility

    在此输入图像描述

  • Chrome - text-rendering: optimizeSpeed

    在此输入图像描述

  • Chrome - text-rendering: geometricPrecision

    在此输入图像描述

与Firefox版相比,所有Chrome屏幕截图看起来都很糟糕.CSS中缺少什么东西?

我使用的是Windows 7,Firefox 8.0和Chrome 15.0.

css text-rendering webfonts

8
推荐指数
1
解决办法
1万
查看次数

Firefox字体表面渲染与Chrome相似

@font-face在CSS 中遇到了麻烦.我使用的字体在每个浏览器中看起来都非常不同.

在Firefox中查看此示例:

火狐

在Chrome中:

铬

我不知道是什么原因引起了这个问题.我已经尝试使用text-rendering,我也尝试url@font-face声明中更改-properties 的顺序.

我使用的是Windows 7 Professional和Firefox V30.

有人可以告诉我这个问题的原因,并告诉我如何解决它?

非常感谢.

//编辑:这是@font-face我正在使用的声明:

@font-face {
    font-family: 'MyFont';
    src: url('myFont.eot');
    src: url('myFont.eot?#iefix') format('embedded-opentype'),
        url('myFont.svg#myfont') format('svg'),
        url('myFont.woff') format('woff'),
        url('myFont.ttf') format('truetype');
    font-style: normal;
    font-weight : normal;
}
Run Code Online (Sandbox Code Playgroud)

正如我上面所写,我已经按照这个命令的顺序玩了.

在我的特定问题中,您可以看到此页面(页脚)显示问题.

css firefox text-rendering

8
推荐指数
1
解决办法
1858
查看次数

模糊文字电子

我有一些问题,文本和图标字体在电子应用程序中看起来模糊.我在Chrome中测试了相同的HTML页面,文字和图标字体看起来更加清晰.

Chrome和电子

在缩放图像后,我可以看到Chrome正在使用子像素渲染,但Electron仅以灰度渲染.我尝试过使用-webkit-font-smoothing: subpixel-antialiased;但它似乎没有改变任何东西.

子像素渲染

Chrome浏览器版本:53.0.2785.116
电子版(process.versions.electron):1.4.1
Electron Chrome版本(process.versions.chrome):53.0.2785.113

是什么导致这种情况,我该如何解决?

text-rendering electron

8
推荐指数
1
解决办法
1188
查看次数

'ASAP'和'UBUNTU'谷歌字体突然变形

过去几年我们一直在Web应用程序中使用ASAP字体而没有任何问题.突然间,我们开始使用'ASAP'谷歌字体注意畸形.它们仅在使用字体呈现<16px字体大小时发生."Ubuntu"字体也出现了同样的问题.

有谁知道造成这些问题的原因是什么?

我们已经注意到这些问题:操作系统的Win10,MacOS上的IE11,最新的Chrome,Edge,Firefox,Safari.

例-1 例如-2

fonts text-rendering google-font-api

8
推荐指数
1
解决办法
240
查看次数

如何提高Graphics2D文字质量?

我有一个关于打印条形码附加信息的问题.我正在使用http://barbecue.sourceforge.net/来创建我的条形码.

在我创建条形码后,我想添加一些额外的信息.目前我用以下方式做到这一点!例如:

Graphics2D g2d5 = container4Barcode.createGraphics();
g2d5.setBackground(Color.WHITE);
g2d5.clearRect(0, 33, 200, 200);
g2d5.setColor(Color.BLACK);
g2d5.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2d5.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
g2d5.setFont(new Font("Arial", Font.PLAIN, 8));
g2d5.drawString(barcode, 8, 40);
g2d5.drawString(generateRandomNumber(ekPreis), 57, 40);
String datumResult = datum;
g2d5.drawString(location, 98, 40);
g2d5.drawString(datum.substring(2), 114, 40);
g2d5.dispose();
Run Code Online (Sandbox Code Playgroud)

输出结果如下: 在此输入图像描述

正如你所看到的那样,我的文本质量(条形码上方和下方)非常糟糕......我怎样才能提高文本质量,使文本更加流畅而不是像素化?!

(当我打印我的条形码时,条形码看起来非常像素化......)

有小费吗?

更新:

所以,我在这里添加了我最新结果的图片......当我打印出这些条形码时,它们看起来很可怕!以下是我所做的代码:

Graphics2D g2d6 = container4Barcode.createGraphics();
g2d6.setColor(Color.black);
g2d6.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2d6.setFont(new Font("Verdana", Font.BOLD, 7));
g2d6.drawString("FLORETT", 9, 20);
g2d6.drawString("50-521-60", 57, 20);
Graphics2D g2d4 = container4Barcode.createGraphics();
g2d4.setColor(Color.black);
g2d4.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 
g2d4.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, 
    RenderingHints.VALUE_FRACTIONALMETRICS_ON);
g2d4.setFont(new Font("Verdana", Font.BOLD, 11));
g2d4.drawString("SSYYS", 105, 19);
g2d4.dispose();
Run Code Online (Sandbox Code Playgroud)

有了该代码,我获得了最好的结果!当然我玩"Metrics,AA_GASP,LCS_HRGB,不同的字体(Verdana在我看来是最好的)......"还有更多,但其中一些我无法使用,因为那时我的条形码变得模糊了!因此,我正在强迫我无法从graphics2d提高我的文本质量的束带的问题! …

java rendering barcode text-rendering graphics2d

7
推荐指数
1
解决办法
8240
查看次数

文本输出Sublime Text使用什么底层图形库?

我注意到,与基于Scintilla的编辑器相比,Sublime Text对某些字体和大小的渲染要好得多.这是如何实现的?它下面是否有一些着名的文字渲染器或者它们自己开发了?

text-rendering sublimetext

7
推荐指数
1
解决办法
1313
查看次数

具有GPos字符文件解析器的字符串表格支持渲染字形

我正在寻找一种从字体文件(.ttf,.otf)中提取字形位图,字形度量和字距调整数据的方法,并支持GPos字距表.

我以前使用过FreeType Library,但它不支持GPos Tables.

fonts freetype text-rendering kerning

7
推荐指数
1
解决办法
287
查看次数

Matplotlib 2 mathtext:刻度标签中的字形错误

在使用默认的mathtext而不是LaTeX数学渲染引擎时,我在matplotlib 2.0.2中渲染数学时发现了错误.似乎一些字形(在我的情况下是减号和乘号)不能被mathtext识别.真正奇怪的是,只有当这些特定字形出现在刻度标签中时才会出现错误.当我故意在图标题中输入一些蹩脚的表达时,它可以正常工作.

考虑以下示例和结果图像:

import matplotlib
import matplotlib.pyplot as plt

# Customize matplotlib
matplotlib.rcParams.update({# Use mathtext, not LaTeX
                            'text.usetex': False,
                            # Use the Computer modern font
                            'font.family': 'serif',
                            'font.serif': 'cmr10',
                            'mathtext.fontset': 'cm',
                            })

# Plot
plt.semilogy([-0.03, 0.05], [0.3, 0.05])
plt.title(r'$-6\times 10^{-2}$')
plt.savefig('test.png')
Run Code Online (Sandbox Code Playgroud)

test.png

如图所示,刻度标签中的乘法和一些减号已被其他字符替换.如果我使用LaTeX(通过设置'text.usetex'True),一切都很好.为什么会发生这种情况,更重要的是,如何在不将mathtext更改为LaTeX的情况下修复它?

附加信息

这是运行示例代码时打印的警告:

mathtext.py:866: MathTextWarning: Font 'default' does not have a glyph for '\times' [U+d7]
  MathTextWarning)
mathtext.py:867: MathTextWarning: Substituting with a dummy symbol.
  warn("Substituting with a dummy symbol.", MathTextWarning)
Run Code Online (Sandbox Code Playgroud)

请注意,指数中出现的减号会正确呈现.如果我遗漏'mathtext.fontset': …

python unicode latex matplotlib text-rendering

7
推荐指数
2
解决办法
2424
查看次数

在 Python 中使用给定字体正确渲染文本并准确检测其边界

这可能是一件非常简单的事情,我也认为是这样,但显然不是。我一定花了一个星期的时间来尝试完成这项工作,但出于对我的热爱,我无法做到。

我需要的

我需要在 Python 中使用任何给定的字体(类似手写的)呈现任何给定的字符串(仅包含标准字符)。字体必须从 TTF 文件加载。我还需要能够准确地检测它的边界(获得文本的确切开始和结束位置,垂直和水平),最好在绘制之前。最后,如果输出是一个我可以继续处理的数组,而不是写入光盘的图像文件,那真的会让我的生活更轻松。

我试过的

Imagemagick 绑定(即 Wand):在设置图像大小并在其上渲染文本之前,无法弄清楚如何获取文本度量。

Pango 通过 Pycairo 绑定:几乎不存在的文档,无法弄清楚如何从文件中加载 TrueType 字体。

PIL(枕头):最有前途的选择。我已经设法准确地计算出任何文本的高度(令人惊讶的是它不是高度getsize返回值),但是某些字体的宽度似乎有问题。不仅如此,那些宽度有问题的字体也会被错误地渲染。即使使图像足够大,它们也会被切断。

以下是一些示例,文本为“Puzzling”:

字体:恋人争吵

结果:

恋人争吵渲染

字体:法哈多斯小姐

结果:

法哈多斯小姐渲染

这是我用来生成图像的代码:

from PIL import Image, ImageDraw, ImageFont
import cv2
import numpy as np
import glob
import os

font_size = 75
font_paths = sorted(glob.glob('./fonts/*.ttf'))
text = "Puzzling"
background_color = 180
text_color = 50
color_variance = 60
cv2.namedWindow('display', 0)

for font_path in font_paths:

    font = ImageFont.truetype(font_path, font_size)
    text_width, text_height = font.getsize(text)

    ascent, descent = font.getmetrics() …
Run Code Online (Sandbox Code Playgroud)

python fonts text-rendering python-imaging-library

7
推荐指数
1
解决办法
4152
查看次数

如何在 Qt Widgets 中比 QPainter.drawText 更快地绘制文本?

我正在实现一个自定义文本布局引擎,我需要一个简单的文本输出函数,它的功能类似于 WinAPI 的 TabbedTextOut。也就是说,它不应该包装单词或类似的东西。

为此,QPainter 的 drawText 似乎很慢。一般来说,它不是很快,但一些 Unicode 字符(笑脸)可能导致渲染耗时长达 500 毫秒(在 Ryzen 3900x 上)!与 TabbedTextOut 相比,它可能做了很多不必要的事情,这显然会导致巨大的问题。

我不想求助于依赖平台的解决方案。我认为应该有一种方法可以大大加快速度。

我试过的:

  • 准备要在工作线程中绘制为 QImage 的文本(实际上是 thead 池)。效果很好,但快速滚动会导致缓存未命中和跳帧。而且图片缓存占用大量内存!
  • QML 的列表视图。并没有那么快,我宁愿坚持只使用小部件的解决方案。
  • 使用 QStaticText。仍然没有解决缓存未命中的问题。
  • 使用 QTextLayout。同样的事情,缓存未命中会导致打嗝。

请提示我值得进一步探索的方向。谢谢!

PS 我在 Windows 10 上使用 Qt 5.15。

c++ performance qt text-rendering qwidget

7
推荐指数
0
解决办法
141
查看次数