Как мы можем опубликовать искусство ASCII на стене Facebook? - PullRequest
3 голосов
/ 03 декабря 2010

В моем приложении есть требование публиковать изображения ASCII из моего приложения для iPhone на стене в Facebook. Но проблема, с которой я сталкиваюсь, заключается в том, что шрифт facebook (Lucida Console) меняет форматирование моей графики ASCII. Я сделал свое ASCII искусство в курьере New.

Что можно сделать?

Есть ли способ, которым я могу опубликовать свое искусство ASCII на Facebook без необходимости переформатировать все это?

Пожалуйста, помогите и предложите.

Спасибо

Ответы [ 2 ]

4 голосов
/ 03 декабря 2010

Курьер - это моноширинный шрифт . Это означает, что каждая буква имеет одинаковое пространство. Вот почему это легко использовать для ASCII-искусства и популярно для кодирования - так как слова с одинаковой длиной всегда будут на одинаковых позициях.

с facebook css:

font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;

Lucida Grande - это пропозиционный шрифт . т.е. я использую намного меньше места, чем м. Слова в разных строках не будут очень хорошо совпадать.

редактировать
Взгляните на эту группу в Facebook . Пользователи компенсируют отсутствие моноширинного шрифта

  1. используя только символы примерно одинаковой ширины
  2. заполняющая комната с короткими символами вроде .

моноширинный
♥♥'''''''''''''''♥♥
♥♥'''''''''''''''♥♥

Пропорциональность
♥♥ '' '' '' '' '' '' '' '♥♥ * ​​1035 *

0 голосов
/ 24 июля 2017

Я придумал скрипт Python, пока тестировал его только на простых примерах.

#!/usr/bin/python
'''
fbformat -- format ASCII for Facebook
'''
import sys, os
PRINTABLE = [' '] + map(chr, range(ord('!'), ord('~') + 1))
FB_ABLE = [u'\u3000'] + map(unichr, range(0xff01, 0xff5f))
TO_FB = dict(zip(PRINTABLE, FB_ABLE))
FROM_FB = dict(zip(FB_ABLE, PRINTABLE))
COMMAND = os.path.splitext(os.path.basename(sys.argv[0]))[0]
TEXT = sys.stdin.read().decode('utf8')
TO = ''.join([TO_FB.get(C, C) for C in TEXT])
FROM = ''.join([FROM_FB.get(C, C) for C in TEXT])
sys.stdout.write([TO, FROM][COMMAND == 'fbunformat'].encode('utf8'))

символьная ссылка на ~/home/bin/fbformat и ~/home/bin/fbunformat, и убедитесь, что ~/home/bin есть в вашем PATH.

введите в качестве test.txt следующее:

YES!
\o/
 |
/ \

затем:

jcomeau@aspire:~/rentacoder/gdavis$ fbformat < /tmp/test.txt
YES!
\o/
 |
/ \
jcomeau@aspire:~/rentacoder/gdavis$ fbformat < /tmp/test.txt | fbunformat
YES!
\o/
 |
/ \

ресурсы: http://www.cs.tut.fi/~jkorpela/chars/spaces.html и https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...