OStack程序员社区-中国程序员成长平台

标题: ios - 如何将文本转换为表情符号? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 10:42
标题: ios - 如何将文本转换为表情符号?

我有一个将文本转换为表情符号的计划。但是,我不知道如何开始。这是我正在寻找的一些屏幕截图。

enter image description here enter image description here

我的想法是,要实现上述结果,我们应该为每个字符保存字典,但问题是字典如何根据字符结构保存表情符号。



Best Answer-推荐答案


我建议您使用简单的位图技术。在第一步中,您构建一个黑白位图,其中包含与您想要的最终图像尺寸相同的书面文本。

enter image description here

在第二步中,您将此图像“划分”为一个光栅,例如比最终的表情符号小 20% 以创建重叠效果。

enter image description here

在每个光栅矩形中计算黑色像素。在那里你会得到一个介于 0-100% 黑色像素之间的百分比。如果此百分比(例如超过 40%),则会在此矩形的中心放置一个随机表情符号。

你可以通过添加少量的随机位移来改善效果。

最后的想法

我实现了这个并且效果很好。我可以通过一些小的优化进一步改善图像:

例如,如果我得到 1000,我将它移到左上角。如果我得到 1010 到左边。

示例代码

以下示例代码演示了所示方法,没有在“最终想法”部分进行调整。它是用 Swift 为 Cocoa 应用程序编写的。您会看到一个简单应用程序的应用程序委托(delegate),它在主窗口中提供了一个文本字段和一个 ImageView 。

您可以完成将文本字段和 ImageView 添加到主窗口的应用程序,并将值绑定(bind)到 socket textFieldimageView。您还必须将文本字段值绑定(bind)到 parameterText 属性。

应用程序的输出如下所示:

enter image description here

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!
    @IBOutlet weak var textField: NSTextField!
    @IBOutlet weak var imageView: NSImageView!

    var updateTimer: NSTimer = NSTimer()

    let canvasSize = CGSize(width: 1024, height: 768)
    let canvasPadding: CGFloat = 32.0
    let emojiSize = 20.0
    let emojiSet: [NSString] = ["





欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4