显示表情符号的正确方法是什么?

时间:2008-10-03 22:23:17

标签: language-agnostic fonts emoticons

在您自己的应用程序中。

[编辑]

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

[/编辑]

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

所以我的问题实际上是对那些做过这件事的人,你想出一种令人满意的渲染表情的方式吗?这不仅仅是一次大规模黑客攻击吗?

开始讨论:

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

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

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

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

3 个答案:

答案 0 :(得分:6)

  1. 创建新字体。 这是留给读者的练习
  2. 转码你的 字符串到字符集 你的新字体。
  3. 绘制:
  4.  
  5. 重复调用操作环境函数来计算文本指标 - 找到表情符号的位置。  
  6. 在文本之前绘制表情符号(如果你使用字体来增强任何背景图像 - 比如说脸,字体上的字形在脸上画出黑色)或者在文本之后(在如果每个表情符号的字形都没有意义,只有字形的大小很重要。

答案 1 :(得分:5)

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

[edit] 请不要让这个意见/建议劝阻任何人帮助回答这个问题。有时你不能与客户作斗争,虽然可能值得多尝试。

答案 2 :(得分:0)

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

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