在你自己的应用程序中.
[编辑]
好吧,所以我完全同意 - 比你知道的更多 - 没有模棱两可的图形表情符号是令人厌恶的.但!当项目所有者告诉我必须支持图形表情符号时,这对我没有帮助.
[/编辑]
问题比最初看起来更复杂,尤其是考虑到编辑,自动换行,可变宽度字体和颜色表情.
所以我的问题实际上是对那些做过这个的人,你想出一个令人满意的渲染表情的方式,这不只是一次大规模的黑客行为吗?
开始讨论:
在两个实现中,我尝试了以下方法.
在3D应用程序中,其中文本行呈现为"纹理"; 我用图像替换了表情符号字符串,匹配文本渲染的类型,因此表情符号只是文本的另一个元素.
基本上,文本呈现引擎必须在最深层次上进行修改.这会产生很好的效果,但是非常耗时,并且很难做到正确(或者至少对我而言; P)
在第二种方法中(使用不同的语言和平台),我决定尝试使用单个字符替换表情字符串并在替换字符上绘制情感来尝试更高级别的"假".这当然有很多局限性,但具有实施起来相当快的优点,并且可以在不费力的情况下达到相当稳定的状态.
创建一个新字体. 这留给读者练习
将字符串转码为新字体的字符集.
画:
重复调用操作环境函数来计算文本度量 - 定位表情符号的位置.
在文本之前绘制表情符号(如果你使用字体来增强任何背景图像 - 比如说脸,字体上的字形在脸上画出黑色)或者在文本之后(在这种情况下每个表情符号的字形是没有意义,只有字形的大小很重要).
是否可以接受建议你应该考虑不转换表情符号?文本表情符号的全部意义在于它们以文本形式可识别.
[编辑]请不要让这个意见/建议劝阻任何人帮助回答这个问题.有时你不能与客户作斗争,尽管可能值得多尝试.