标签: glyph

如何在wpf中计算FormattedText或GlyphRun的'Size'?

在WPF4,我怎么可以计算'Size'FormattedText或者GlyphRun一个drawingvisual.

我在画布上使用drawingvisual.当我更改文本大小或文本时,会发生更改但实际宽度和高度相同或不会更新.

Using dc As DrawingContext = drawingvisual.RenderOpen                    

                Dim ft As New FormattedText(...)

                dc.DrawText(ft, New Point(0, 0))

                dc.Close()

End Using
Run Code Online (Sandbox Code Playgroud)

wpf formatting glyph

6
推荐指数
2
解决办法
5768
查看次数

为什么我的QML CJK文本使用损坏的字形呈现?

我的应用程序允许用户即时切换语言.我发现大约有10%的时间用户切换到中文或日文,UI文本的字形呈现不正确.

此应用程序在iMX6平台上的Linux下运行.Qt 5.5.0正在使用中.QML用于呈现UI.使用QML Text控件呈现损坏的文本.

损坏的字体渲染示例

正在使用的字体是Source Hans Sans Regular.我尝试使用QML FontLoader加载它,并将它在C++端加载到应用程序字体数据库中(两种方法都表现出问题).我尝试过使用(公认的非常强烈相关的)Noto字体; 同样的问题.

在使用Roboto进行非CJK文本时,我从未见过文本呈现的损坏,如上所述,这对CJK/Source Hans Sans来说更常见.

腐败是有趣的,因为它看起来像是在渲染的位图级别,而不是字形定义级别(请注意一些字形如何使下半部分正确,但上半部分已损坏).

腐败确实有时会进展.这让我认为字形位图缓存内存正在被进一步覆盖(只是一个理论,因为我不确定Qt如何进行字体渲染).我认为可能是QML垃圾收集做了一些奇怪的事情,但在C++端加载字体没有什么区别.

接下来,我将尝试使用"本机渲染"进行QML Text控件.

谁看过这个吗?任何人都可以确认FreeType用于Qt 5.5.0下的字体管理/渲染吗?有没有办法影响字体位图缓存的管理方式?

谢谢!

更新:使用'renderType:Text.NativeRendering'并没有消除问题(虽然腐败表现略有不同).而且,鉴于该模式的局限性,最终导致文本渲染效果差(软,缩放等等 - 如文档所述).

更新2:我建立了Qt(据我所知)所有禁用的字形缓存 - shouldDrawCachedGlyphs()在我的本地构建中为我能够找到的那个调用的四个实例返回false - 但仍然遇到字形损坏.

更新3:尝试通过设置QMLSCENE_DEVICE = softwarecontext per docs切换到使用软件(非OpenGL)Qt Quick 2渲染器; 字形腐败仍然发生.

qt glyph text-rendering cjk qml

6
推荐指数
1
解决办法
1358
查看次数

自Java 7u13以来,字体字形无法使用Graphics2D drawString呈现

在Windows 10上使用Java 32bit中的某些特定真实字体字体绘制字符串时,我遇到了一个奇怪的问题.

从Java 7u13开始,每当字体的字符/字形宽度超过其高度的4倍时,它就不会使用Graphics2D.drawString进行渲染(例如,字形4001em宽,基本字体大小为1000em):

public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;
    g2.setFont(new Font("myFontWithWideGlyphForX", Font.PLAIN, 12));
    g2.drawString("XXXX", 10, 10);
}
Run Code Online (Sandbox Code Playgroud)

但是,字体在JLabel上正确呈现,因此在对底层Swing代码进行一些调查之后,我意识到将渲染提示KEY_TEXT_ANTIALIASING设置为VALUE_TEXT_ANTIALIAS_LCD_HRGB会使文本正确呈现:

public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;
    g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
    g2.setFont(new Font("myFontWithWideGlyphForX", Font.PLAIN, 12));
    g2.drawString("XXXX", 10, 10);
}
Run Code Online (Sandbox Code Playgroud)

在设置子像素atialiasig并正确呈现字体后,渲染算法似乎有所不同.

如果我切换到Java 7u11或更早版本,文本呈现没有任何问题,并且没有设置VALUE_TEXT_ANTIALIAS_LCD_HRGB.

对于具有如此宽字形的任何其他字体也会发生同样的情况 - 例如,这个随机字体具有字符"J"的宽字形:http: //www.fontspace.com/digital-magic/hdgems5 - 它可以用Java 7u11渲染,但是没有任何比这更新的东西.

设置子像素抗锯齿VALUE_TEXT_ANTIALIAS_LCD_HRGB只是为了呈现字体看起来很丑陋,并不总是可行(例如,在使用第三方库时).有没有人知道自7u13以来awt没有渲染这些角色的原因是什么?这样的字体是否不受支持?或者这可能是一个错误?

java fonts swing glyph graphics2d

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

字符串中的字符数(不是字节数)

在objective-c中的字符串中,如果我说类似[myStr length];它返回一个数字,这是一个字节数,但我可以用什么来返回字符串中的字符数.

例如:
一个字母"a"
的字符串返回长度为1 的字符串,其中包含一个表情符号,返回长度为2(有时甚至长度为4)


这是因为这是字符串中的字节数...我只需要字符数.

string glyph objective-c string-length charactercount

5
推荐指数
1
解决办法
2378
查看次数

CSS内容特殊字符:十六进制与普通字符

示例'BLACK STAR'★(U + 2605)

.a:after {
   content: "\2605";
   position:absolute;
}

.b:after {
   content: "?";
   position:absolute;
}
Run Code Online (Sandbox Code Playgroud)

演示: http ://jsfiddle.net/l2aelba/vBjxX/

为什么有人/最推荐使用HEX\2605在CSS值?两者都得到相同的结果.

css hex glyph character css3

5
推荐指数
1
解决办法
8348
查看次数

在d3中是否可以动态改变路径位置开始补间的位置?

澄清.画一个圆圈.我们开始从特定坐标绘制圆.现在让我们从另一个坐标开始绘制圆圈.

我正在使用从SVG字形派生的路径数据,然后使用d3js补间来动画路径之间的变化.

对于此示例,从1 - > 9,0开始计数,然后重复.

http://jsfiddle.net/chrisloughnane/HL2ET/

正如您所看到的,一些转换并不像其他转换那样好.他们绘制一条线来关闭下一条路径的路径.(我猜测)当进行新形状的计算时,当路径的起点和终点相距很远时会发生这种情况.当它工作时它非常好.

任何人都可以建议解决丑陋的线条吗?

没有路径数据的CODE

svg.append("path")
    .attr("transform", "translate(150,300)scale(.2,-.2)")
  .style("stroke", "red")
  .style("fill", "gray")
  .style("stroke-width", "9")
    .attr("d", d0)
    .call(transition, digits[0], digits[position]);

function transition(path, d0, d1) {
  position++;
  if(position==10)
  {
    position=0;
  }
  path.transition()
      .duration(2000)
      .attrTween("d", pathTween(d1, 4))
      .each("end", function() { d3.select(this).call(transition, d1, digits[position]); });
}

function pathTween(d1, precision) {
  return function() {
    var path0 = this,
        path1 = path0.cloneNode(),
        n0 = path0.getTotalLength(),
        n1 = (path1.setAttribute("d", d1), path1).getTotalLength();

    // Uniform sampling of distance based on specified precision.
    var distances …
Run Code Online (Sandbox Code Playgroud)

glyph d3.js

5
推荐指数
1
解决办法
1046
查看次数

在文本中使用adj参数时,"大"标签的水平对齐会被抵消

text,该参数adj允许调整labels相对于xy.例如,adj的值(0,1)是指左上对准,即左侧,标签的顶部拐角被放置在给定的x,y坐标.

这适用于默认字符扩展cex = 1.但是当我想要一个更大的标签,通过增加创建时cex,标签的位置从给定的坐标和adjustment 水平偏移.

这是一个小例子,它说明了这一点:

# a basic plot
plot(1:10, asp = 1, cex = 1)

# a red reference mark at 5, 5
points(x = 5, y = 5, pch = 3, cex = 3, col = 'red')

# a label of default size (cex = 1), left top adjusted
text(x = 5, y = 5, …
Run Code Online (Sandbox Code Playgroud)

fonts text r glyph

5
推荐指数
1
解决办法
478
查看次数

glyphicon和文本之间的间距?

我正在尝试添加字形图标作为电子邮件地址链接的一部分.图标显示但图标和电子邮件地址文本之间没有间距(我希望超链接包括图标和文本......包括空格).实现这一目标的最佳方法是什么?

       <a href="mailto:someone@somewheredotcom" title="Some Email">
        <span class="glyphicon glyphicon-envelope">someone@somewheredotcom</span>
    </a> 
Run Code Online (Sandbox Code Playgroud)

email glyph spacing

5
推荐指数
2
解决办法
2万
查看次数

WPF:字形从右到左文本渲染

我想使用 Glyph 渲染从右到左的语言文本(例如阿拉伯语或混合英语和阿拉伯语)。

\n\n

我正在使用这段代码:

\n\n
    Typeface typeface = new Typeface(new FontFamily("Arial"),\n                      FontStyles.Italic,\n                      FontWeights.Normal,\n                      FontStretches.Normal);\n\n       GlyphTypeface glyphTypeface;\n       if (!typeface.TryGetGlyphTypeface(out glyphTypeface))\n           throw new InvalidOperationException("No glyphtypeface found");\n\n       string text = "Hello  ,  \xd8\xb3\xd9\x84\xd8\xa7\xd9\x85";\n       double size = 40;\n\n       ushort[] glyphIndexes = new ushort[text.Length];\n       double[] advanceWidths = new double[text.Length];\n\n       double totalWidth = 0;\n\n       for (int n = 0; n < text.Length; n++)\n       {\n           ushort glyphIndex = glyphTypeface.CharacterToGlyphMap[text[n]];\n           glyphIndexes[n] = glyphIndex;\n\n           double width = glyphTypeface.AdvanceWidths[glyphIndex] * size;\n           advanceWidths[n] = width;\n\n           totalWidth += width;\n       }\n\n       Point …
Run Code Online (Sandbox Code Playgroud)

c# wpf text glyph

5
推荐指数
1
解决办法
1230
查看次数

如何"解码"字体文件的eexec?

我有一个.pfa字体文件,我想阅读"算法"来渲染字体.但是,大多数信息都隐藏在行中的二进制文件中:

currentfile eexec
743F8413F3636CA85A9FFEFB50B4BB27302A5F6C876586CCC1670A7EF5521E6ADE15AAB4
DD2DDDB83735311FC63DB80D2C96AECFA05BB67F865EA35934B4B79A203A8DD489B09C79
FF6EB9DBCFD889C3E73F8C94BC342AF671D6F688870A62EE1A0DF216E150FFEC64A8C2B7
509AD05C011599C1AD84E6C4B668E07EA219BD72663D8AF4CA8EC8E23AA90DE90BE940C6
6DB849CEDB3B64961365A7CCE47F4FC9E30FDEE4B14B90C2E0D8C344EBC974EABF417B3D
28251A78ACEE2BFC4212B1E3E9C7EBC3262821EE98E538713C64DF0BC13C19337B1307DB
D795D285F959C924FC14AEF7E9D406406CDEE1A35377887A16B13DD51717A86284369FA7
6ABB6A4488B9174A561DA854C33821F3172E4CF956EC9B65F829D69E02BC0EE23044DB1D
9A4D45A14A3998115BEE5DDC582F158DB2E..................
Run Code Online (Sandbox Code Playgroud)

我们如何"解码"这些信息?

fonts adobe glyph postscript

4
推荐指数
1
解决办法
1796
查看次数