4

在您自己的应用程序中。

[编辑]

好吧,所以我完全同意 - 比你知道的更多 - 毫不含糊地认为图形表情符号是可憎的。但!当项目所有者告诉我我们必须支持图形表情符号时,这对我没有帮助。

[/编辑]

这个问题比最初看起来更复杂,尤其是当您考虑到编辑、自动换行、可变宽度字体和颜色表情符号时。

所以我的问题真的是针对那些做过这件事的人,你有没有想出一种令人满意的方式来渲染表情符号,而不仅仅是一个大规模的黑客攻击?

开始讨论:

在两个实现中,我尝试了以下方法。

在 3D 应用程序中,文本行呈现为“纹理”;我用图像替换了表情符号字符串,匹配文本呈现的类型,因此表情符号成为文本的另一个元素。

本质上,文本渲染引擎必须在最深层次上进行修改。这会产生很好的结果,但是非常耗时,而且很难做到正确(或者至少对我来说;P)

在第二种方法中(使用不同的语言和平台),我决定尝试更高级别的“假”,用单个字符替换表情符号字符串并在替换的字符上绘制情感。这当然有很多限制,但具有实施起来相当快的好处,并且可以在不付出过多努力的情况下达到相当稳定的状态。

4

3 回答 3

6
  1. 创建一个新字体。 这留给读者作为练习
  2. 将您的字符串转码为新字体的字符集。
  3. 画:
  • 重复调用运行环境函数来计算文本度量 - 以定位您的表情符号的位置。
  • 在文本之前绘制表情符号(如果您使用字体来增强任何背景图像 - 比如说一张脸,字体字形在脸上绘制黑色)或文本之后(在这种情况下,每个表情符号的字形是没有实际意义,只有字形的大小很重要)。
  • 于 2008-10-03T23:09:33.687 回答
    5

    建议您考虑不转换表情符号是否可以接受?文本表情符号的全部意义在于它们是可识别的……以文本形式。

    [编辑]请不要让这种意见/建议阻止任何人帮助回答这个问题。有时您无法与客户抗争,尽管可能值得多尝试几次。

    于 2008-10-03T22:25:30.703 回答
    0

    这里有一个想法:不要以任何方式转换它们,而是旋转 90 度。

    例如,您可以渲染表情符号的图像,然后将该图像顺时针旋转 90 度并显示它。

    于 2008-10-03T22:57:25.177 回答