• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何将文本转换为表情符号?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 10:42:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

enter image description here enter image description here

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



Best Answer-推荐答案


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

enter image description here

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

enter image description here

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

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

最后的想法

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

  • 对于每个黑色 >40% 的矩形,我将此矩形分为四个区域(左上、右上、左下、右下)。
  • 如果其中一个区域有黑色像素,我将该区域计为 1,否则计为 0。
  • 这会创建 16 种不同的模式。对于其中一些模式,我将表情符号从矩形的中心移得更远。

例如,如果我得到 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] = ["
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap