Heim > php教程 > PHP开发 > Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

高洛峰
Freigeben: 2016-11-23 15:51:58
Original
5292 Leute haben es durchsucht

Die Verwendung von Emoji-Ausdrücken zum Verfassen chinesischer Schriftzeichen oder einfacher Zeichnungen ist auf WeChat und QQ weit verbreitet, daher habe ich darüber nachgedacht, es selbst zu erstellen

Zum Beispiel das Bild unten:

Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

Der Implementierungsplan, der mir zu Beginn in den Sinn kam, war: Konvertieren Sie zunächst chinesische Schriftzeichen in Bilder mit schwarzen Schriftzeichen auf weißem Hintergrund und ordnen Sie die Bilder dann basierend auf Graustufenwerten verschiedenen Schriftzeichen zu ​und am Terminal ausdrucken.

Die frühere Text-zu-Bild-Konvertierung lässt sich mithilfe gängiger Zeichenbibliotheken (z. B. der PIL-Bibliothek von Python) sehr einfach implementieren. Der Arbeitsaufwand besteht lediglich darin, den Schriftsatz während des Implementierungsprozesses langsam anzupassen, um den gewünschten Effekt zu erzielen .

Letzteres ist nur eine einfache Zuordnungsbeziehung: Ordnen Sie den Grauwert der Pixel im Bild einem bestimmten Zeichen zu. In dieser Implementierung gibt es nur zwei Zuordnungsbeziehungen für Bilder mit weißen Zeichen auf schwarzem Hintergrund , und die entsprechenden schwarzen Zeichen müssen durch Emoji-Zeichen ersetzt werden, der weiße Hintergrund entspricht dem Leerzeichen

Der Python-Implementierungscode dieses Teils lautet wie folgt:

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)]
Nach dem Login kopieren

select_ascii_char realisiert die Zuordnung eines Pixels in ein bestimmtes benutzerdefiniertes Zeichen char.

Bei der Implementierung dieser Funktion ist ascii_char einfacher und erfordert nur zwei Zeichen: eines wird zufällig angegeben und das andere ist ein Leerzeichen.

Ersetzen Sie also ascii_char durch [u'❤️ ' , u' ']

Da die Pixel des Bildes Zeichen zugeordnet werden müssen, die auf dem Terminal gedruckt werden können, ist der Anzeigeraum des Terminals begrenzt, sodass das Bild dies tun muss reduziert und angepasst werden.

zh2emoji-Code Es gibt einen entsprechenden Code-Download auf meinem Github. Wenn Sie interessiert sind, können Sie ihn teilen, um weitere gewünschte individuelle Funktionen zu erreichen.

Anzeigen

Ich habe das Wort „Fenchel“ in mehreren Schreibweisen:

print image2print(word2image(u'茴'), u'❤️ ')
print image2print(word2image(u'茴'), u'W ')
print image2print(word2image(u'茴'), u'茴', width=40)
Nach dem Login kopieren

Die Ausgabeergebnisse sind wie folgt:

Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

Mehr Ausgabe:

Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

Verwenden Sie Emoji-Zeichen, um beliebige chinesische Schriftzeichen zu bilden

Erweiterung

Basiert Auf zh2emoji habe ich eine Erweiterung implementiert, die nützlich sein kann: demo_show_animation.py.

Es kann einen Satz nacheinander auf dem Terminal ausdrucken, wobei das Emoji oder andere von Ihnen festgelegte Zeichen verwendet werden.

Für Wenn Sie beispielsweise versuchen, python ./demo_show_animation.py auszuführen, klicken Sie auf „Gefällt mir“, eine Animation, die Text anzeigt, wird im Terminal ausgeführt. Der angezeigte Text ist der, den Sie gerade eingegeben haben.

Wenn Sie können bis zu diesem Punkt durchhalten. Haben Sie sich ein interessantes Gameplay ausgedacht? Willkommen, machen Sie gemeinsam mit. Programmieren macht Spaß, und Code ist ein Medium zur Verwirklichung einiger mentaler Ideen. Programmierer schreiben Code, genau wie Schriftsteller Wörter schreiben, es ist eine Gewohnheit.

In Zukunft plane ich möglicherweise, eine aus Emojis bestehende Animation im Terminal abzuspielen (z. B. die Ladeanimation von Buka Girl)


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage