HugeText.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. -- (c) bel2125, 2010
  2. -- MIT public licence
  3. local letterCode = {
  4. [' '] = {0,0,0,0,0},
  5. ['!'] = {0,0,95,0,0},
  6. ['"'] = {0,3,4,3,0},
  7. ['#'] = {34,127,34,127,34},
  8. ['$'] = {36,42,127,42,18},
  9. ['%'] = {35,19,8,100,98},
  10. ['&'] = {54,73,85,34,80},
  11. ["'"] = {0,11,7,0,0},
  12. ['('] = {0,28,34,65,0},
  13. [')'] = {0,65,34,28,0},
  14. ['*'] = {20,8,62,8,20},
  15. ['+'] = {8,8,62,8,8},
  16. [','] = {0,88,56,0,0},
  17. ['-'] = {8,8,8,8,8},
  18. ['.'] = {0,96,96,0,0},
  19. ['/'] = {32,16,8,4,2},
  20. ['0'] = {62,81,73,69,62},
  21. ['1'] = {0,66,127,64,0},
  22. ['2'] = {66,97,81,73,70},
  23. ['3'] = {65,73,77,75,49},
  24. ['4'] = {24,20,18,127,16},
  25. ['5'] = {39,69,69,69,57},
  26. ['6'] = {60,74,73,73,48},
  27. ['7'] = {1,1,121,5,3},
  28. ['8'] = {54,73,73,73,54},
  29. ['9'] = {6,73,73,41,30},
  30. [':'] = {0,54,54,0,0},
  31. [';'] = {0,91,59,0,0},
  32. ['<'] = {8,20,34,65,0},
  33. ['='] = {20,20,20,20,20},
  34. ['>'] = {0,65,34,20,8},
  35. ['?'] = {2,1,81,9,6},
  36. ['@'] = {50,73,121,65,62},
  37. ['A'] = {124,18,17,18,124},
  38. ['B'] = {65,127,73,73,54},
  39. ['C'] = {62,65,65,65,34},
  40. ['D'] = {65,127,65,65,62},
  41. ['E'] = {127,73,73,73,65},
  42. ['F'] = {127,9,9,9,1},
  43. ['G'] = {62,65,65,73,57},
  44. ['H'] = {127,8,8,8,127},
  45. ['I'] = {0,65,127,65,0},
  46. ['J'] = {32,64,65,63,1},
  47. ['K'] = {127,8,20,34,65},
  48. ['L'] = {127,64,64,64,64},
  49. ['M'] = {127,2,12,2,127},
  50. ['N'] = {127,4,8,16,127},
  51. ['O'] = {62,65,65,65,62},
  52. ['P'] = {127,9,9,9,6},
  53. ['Q'] = {62,65,81,33,94},
  54. ['R'] = {127,9,25,41,70},
  55. ['S'] = {38,73,73,73,50},
  56. ['T'] = {1,1,127,1,1},
  57. ['U'] = {63,64,64,64,63},
  58. ['V'] = {7,24,96,24,7},
  59. ['W'] = {127,32,24,32,127},
  60. ['X'] = {99,20,8,20,99},
  61. ['Y'] = {3,4,120,4,3},
  62. ['Z'] = {97,81,73,69,67},
  63. ['['] = {0,127,65,65,0},
  64. ['\\'] = {2,4,8,16,32},
  65. [']'] = {0,65,65,127,0},
  66. ['^'] = {24,4,2,4,24},
  67. ['_'] = {64,64,64,64,64},
  68. ['`'] = {0,0,7,11,0},
  69. ['a'] = {56,68,68,60,64},
  70. ['b'] = {127,72,68,68,56},
  71. ['c'] = {56,68,68,68,32},
  72. ['d'] = {56,68,68,72,127},
  73. ['e'] = {56,84,84,84,24},
  74. ['f'] = {0,8,126,9,2},
  75. ['g'] = {8,84,84,60,0},
  76. ['h'] = {127,4,4,120,0},
  77. ['i'] = {0,0,125,0,0},
  78. ['j'] = {32,64,68,61,0},
  79. ['k'] = {127,16,40,68,0},
  80. ['l'] = {0,0,127,0,0},
  81. ['m'] = {120,4,120,4,120},
  82. ['n'] = {124,8,4,4,120},
  83. ['o'] = {56,68,68,68,56},
  84. ['p'] = {124,20,20,20,8},
  85. ['q'] = {24,36,20,124,64},
  86. ['r'] = {124,8,4,4,0},
  87. ['s'] = {72,84,84,84,32},
  88. ['t'] = {4,62,68,32,0},
  89. ['u'] = {60,64,64,32,124},
  90. ['v'] = {28,32,64,32,28},
  91. ['w'] = {60,64,48,64,60},
  92. ['x'] = {68,36,124,72,68},
  93. ['y'] = {12,80,80,60,0},
  94. ['z'] = {68,100,84,76,68},
  95. ['{'] = {0,8,54,65,0},
  96. ['|'] = {0,0,119,0,0},
  97. ['}'] = {0,65,54,8,0},
  98. ['~'] = {8,4,8,16,8},
  99. };
  100. letterCode['('] = {0,60,66,129,0}
  101. letterCode[')'] = {0,129,66,60,0}
  102. letterCode[','] = {0,176,112,0,0}
  103. letterCode[';'] = {0,182,118,0,0}
  104. letterCode['['] = {0,255,129,129,0}
  105. letterCode[']'] = {0,129,129,255,0}
  106. letterCode['_'] = {128,128,128,128,128}
  107. letterCode['g'] = {24,164,164,124,0}
  108. letterCode['j'] = {64,128,132,125,0}
  109. letterCode['p'] = {252,36,36,36,24}
  110. letterCode['q'] = {24,36,36,252,128}
  111. letterCode['y'] = {12,80,80,60,0}
  112. letterCode['{'] = {0,24,102,129,0}
  113. letterCode['}'] = {0,129,102,24,0}
  114. local function HugeLetter(letter)
  115. if letter==' ' then return {" ", " ", " ", " ", " ", " ", " ", " "} end
  116. local code = letterCode[letter]
  117. local str = {"", "", "", "", "", "", "", ""}
  118. for i=1,5 do
  119. local n = code[i]
  120. if n and n>0 then
  121. for b=1,8 do
  122. if bit32.btest(n, bit32.lshift(1, b-1)) then str[b] = str[b] .. letter else str[b] = str[b] .. ' ' end
  123. end
  124. end
  125. end
  126. return str
  127. end
  128. function HugeText(str)
  129. local txt = {"", "", "", "", "", "", "", ""}
  130. for i=1,string.len(str) do
  131. local s = HugeLetter(str:sub(i,i))
  132. for b=1,8 do
  133. if i>1 then
  134. txt[b] = txt[b] .. " " .. s[b]
  135. else
  136. txt[b] = txt[b] .. s[b]
  137. end
  138. end
  139. end
  140. return txt
  141. end
  142. return HugeText