【问题标题】:Programmatically get a PNG for a unicode emoji以编程方式获取 Unicode 表情符号的 PNG
【发布时间】:2019-05-12 06:14:11
【问题描述】:

在 python 中,我有一个这样的组合表情符号:"????" + "\u200D" + "????",通常表示为https://emojipedia.org/male-mechanic/。我想获得一个 PNG 版本用作情节点(在 matplotlib 中,如果有帮助的话)。是否有任何官方或非官方的地方可以将 Unicode 版本的表情符号转换为 PNG 等价物?

【问题讨论】:

  • 资源和库(等)建议在 Stack Overflow 上是题外话。但奇怪的是,您指向的那个页面列出了您的表情符号的各种 PNG 版本。
  • 谢谢。不过,我不确定如何以编程方式获取这些内容?
  • 另外,如果有问题,请向 OT 表示抱歉。
  • 需要自动获取它们吗?您肯定知道要使用哪一个吗?然后右键单击并使用浏览器保存图像。除非您的用例比您描述的要复杂得多。
  • 我有(比如说)10,000 个点,并且想从一组中为每个点分配一个不同的随机选择的表情符号。所以是的,我想程序化是最好的(这些点是在大型模拟家谱中绘制的个人)

标签: png emoji python-unicode


【解决方案1】:

对于其他正在寻找答案的人,目前我正在使用来自 https://unicode.org/emoji/charts/full-emoji-list.html 的 PNG,以及解析网页的 hack,就像这样

class EmojiConverter:
    def __init__(self):
        import requests
        import re
        self.data = requests.get('https://unicode.org/emoji/charts/full-emoji-list.html').text
    def to_base64_png(self, emoji, version=0):
        """For different versions, you can set version = 0 for , """
        html_search_string = r"<img alt='{}' class='imga' src='data:image/png;base64,([^']+)'>" #'
        matchlist = re.findall(html_search_string.format(emoji), self.data)
        return matchlist[version]

e = EmojiConverter()
b64 = e.to_base64_png("?"+"\u200D" + "?")

【讨论】:

  • 有没有办法做相反的事情?我从 FB 抓取的每个表情符号都有一个 .png 文件。有没有办法将这些.png emojis 转换成字符串格式?
  • 这听起来很难。但是,在抓取时,您能否将等效的 unicode 保存在 PNG 元数据中?
  • 我不太确定。我猜它们并不总是PNG,例如this。我找到了另一种方法来做到这一点,但这需要我为每个我想抓取的帖子发送一个额外的请求。据我所知,没有元数据。至少不是标签的alt 属性的形式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 2021-10-06
  • 1970-01-01
相关资源
最近更新 更多