首页 php教程 PHP开发 使用emoji字符组成任意汉字

使用emoji字符组成任意汉字

Nov 23, 2016 pm 03:51 PM
emoji

使用emoji表情组成汉字或者简笔画,在微信、QQ的传播中甚广,就会想着要不自己也试着做出来吧.

比如下图:

154420_BzEY_1450051.png

一开始想到的实现方案就是: 首先将汉字转化成白底黑字的图片, 然后将图片根据灰度值映射成不同的字符打印在终端。

前者文字转图片,使用常见的绘图库非常好实现(比如python的PIL库);工作量无非只是实现过程中慢慢调整排版, 以达到自己的预期效果.

后者则是简单的映射关系而已: 将图片中像素点的灰度值, 映射成某个字符; 在该实现中, 对于黑底白字的图片只有两个映射关系,黑字对应要替换的emoji字符, 白底对应空白.

该部分的python实现代码如下:

ascii_char = list('1234567890abcd ')  # 任意多个字符,灰度值的映射区间

def select_ascii_char(r, g, b):
    ''' 在灰度图像中,灰度值最高为255,代表白色; 最低为0,代表黑色 '''
    # 把RGB转为灰度值,并且返回该灰度值对应的字符标记
    # 'RGB-灰度值'转换公式如下
    gray = int((19595 * r + 38469 * g + 7472 * b) >> 16)
    # ascii_char中的一个字符所能表示的灰度值区间
    unit = 256.0 / len(ascii_char)
    return ascii_char[int(gray/unit)]
登录后复制

select_ascii_char 就实现了将一个像素点映射成一个具体的自定义字符char.

在本功能的实现中, ascii_char更简单, 只需要两个字符即可: 一个任意给定, 一个是空格.

因此将 ascii_char 换成 [u'❤️ ', u' ']

由于需要将图片的像素点映射到可在终端打印的字符, 终端的显示空间有限, 所以需要对图片进行缩小调整.

zh2emoji的代码在我的github上有对应的代码下载, 如果你有兴趣,可以fork后实现自己想要的更多自定义功能.

展示

一个"茴"字我有N多种写法:

print image2print(word2image(u'茴'), u'❤️ ')
print image2print(word2image(u'茴'), u'W ')
print image2print(word2image(u'茴'), u'茴', width=40)
登录后复制

输出结果如下:

154420_BzEY_1450051.png

154420_BzEY_1450051.png

154420_BzEY_1450051.png

更多输出:

154420_BzEY_1450051.png

154420_BzEY_1450051.png

扩展

基于zh2emoji,自己实现了一个可能有点儿用的扩展: demo_show_animation.py.

它可以将一句话在终端依次打印出来,使用你决定的emoji或者其他字符.

比如你试着执行 python ./demo_show_animation.py 喜欢就点个赞呗, 将在终端执行一段展示文字的动画, 展示的文字就是你刚才输入的话.

如果你能够坚持看到这里, 不知道你有没有想到一些有意思的玩法不? 欢迎一起参与。编程是一种乐趣,代码是将一些头脑想法实现出来的媒介;程序员写代码,就好比作家写写文字,是一种习惯。

后续我可能打算, 在终端实现播放一个由emoji组成的简笔画形象的动画(比如布卡娘的加载动画)


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

苹果发布 iOS 17.4 Beta 1,引入 118 个新表情符号,包括凤凰、青柠等 苹果发布 iOS 17.4 Beta 1,引入 118 个新表情符号,包括凤凰、青柠等 Jan 26, 2024 am 08:24 AM

1月26日消息,根据国外科技媒体emojipedia报道,苹果在今天发布的iOS17.4Beta1更新中,面向27个欧盟国家测试开放侧载、第三方应用商店等重大改进之外,还新增了多个Emoji表情符号。iOS17.4Beta1更新添加了包括凤凰、青柠、上下摇头的笑脸,一系列指明方向的人物表情符号,来自Unicode于2023年9月提出的Emoji15.1更新。附上完整Emoji如下:本次更新共计新增118个Emoji,包括6个全新Emoji,4个无性别区分的家庭Emoji。此外还有6个现有人物表情

Win10教育版怎么关闭emoji Win10教育版怎么关闭emoji Feb 24, 2024 pm 01:55 PM

emoji表情作为Win10教育版最新添加的输入法功能,很多可爱的表情让聊天不在枯燥,但是有的用户在使用快捷键的时候会弹出该界面,今天小编为大家带来Win10教育版关闭emoji方法介绍。Win10教育版怎么关闭emoji1、首先需要右击下方任务栏右侧的输入法。2、在弹出的选项框中选择设置,进入语言设置界面。3、选择界面中的“按键”选项并滚动到最底端,能够找到“打开表情及符号面板”,这里可以关闭emoji表情。4、如果还安装了其他输入法的话,可以从Windows设置进入“设置和语言”界面,随后选

华为emoji怎么输入 华为emoji怎么输入 Sep 26, 2023 pm 01:31 PM

华为emoji输入方法:1、华为手机自带了一个emoji表情键盘,可以在输入文字的时候切换到该键盘来输入emoji表情;2、在需要输入emoji的地方,长按输入框,然后选择“输入法设置”,在输入法设置中,可以找到并选择系统自带的emoji输入法;3、可以下载并使用第三方的emoji表情键盘,然后,可以在键盘上浏览并选择想要使用的emoji表情。

iOS 15.4 及iPadOS 15.4 Beta 1 公测版登场戴口罩也可用Face ID iOS 15.4 及iPadOS 15.4 Beta 1 公测版登场戴口罩也可用Face ID Apr 13, 2023 pm 11:01 PM

Apple 正式向公众推出iOS 15.4 及iPadOS 15.4 Beta 1,版本为19E5209h。这次官方的更新说明中列出众多改变,包括加入新功能。支持口罩 Face IDApple 在iOS 15.4 中加入了「口罩Face ID」,iPhone 会在用户戴口罩时通过辨识眼睛周围区域的独特特征来进行认证。留意,用户必须使用iPhone 12 或以上的型号iPhone 才可使用这项功能。加入112 个新Emoji 表情图示iOS 15.4 Beta 1 正式支持Emoji 14。当中加

mysql emoji 乱码怎么办 mysql emoji 乱码怎么办 Feb 16, 2023 am 10:01 AM

mysql emoji乱码的解决办法:1、通过“show create table test ENGINE=InnoDB DEFAULT CHARSET=utf8mb4”命令查看mysql表编码;2、通过“set names utf8mb4;”设置读取编码为“utf8mb4”即可。

iOS 15.4 Beta 5引入新功能:面罩Face ID、AirTag防追踪等。 iOS 15.4 Beta 5引入新功能:面罩Face ID、AirTag防追踪等。 Apr 21, 2023 am 08:10 AM

Apple向开发者推送iOS15.4Beta5及iPadOS15.4Beta5,估计这可能是最后Beta,下周很有可能会进入RC阶段,而正式版会在3月中之前登场。AirTag反追踪功能新版iOS15.4引进早前Apple宣布的AirTag、FindMy反追踪功能,现在已于Beta4中引进,分别在配对设计时加入警告讯息及调整「侦测出不明配件」的警告。Siri新语音选择对于美国用户来说,iOS15.4Beta4加入了第五款Siri语音(档名为Quinn),美国地

iOS 15.4 及iPadOS 15.4 正式登场加入口罩Face ID 功能 iOS 15.4 及iPadOS 15.4 正式登场加入口罩Face ID 功能 Apr 17, 2023 pm 05:37 PM

Apple正式发布万众期待的iOS15.4正式版。这次最多人关心的就是「口罩FaceID」功能。这功能可让iPhone12或以上型号的iPhone在启用口罩FaceID功能后,如同平日的FaceID一般解锁。而且不限于解锁,更可在ApplyPay、AppStore、登入Apps之用,情况跟我们平日用的FaceID完全一样。加入112个新Emoji表情图示iOS15.4正式支持Emoji14。当中加入37款全新形像Emoji,还有75款不同肤色支持,那就是说有1

iOS 15.4 及iPadOS 15.4 Beta 3 登场支持口罩Face ID 及更多的功能 iOS 15.4 及iPadOS 15.4 Beta 3 登场支持口罩Face ID 及更多的功能 Apr 19, 2023 pm 07:37 PM

Apple正式向开发者推出iOS15.4及iPadOS15.4Beta3,版本为19E5225g。这次官方的更新说明中列出众多改变,包括加入新功能。支持行动数据下载更新以往,更新iOS需要WiFi,但新版iOS15.4Beta3中已加入了「行动数据下载」功能,那就是说即使没有WiFi也可更新iOS。支持口罩FaceIDApple在iOS15.4中加入了「口罩FaceID」,iPhone会在用户戴口罩时通过辨识眼睛周围区域的独特特征来进行认证。留意,用户必须使用iPhon

See all articles