/**
* FontGenerator3Pixel
* Copyright 2014 by Michael Christen
* First released 14.02.2014 at http://yacy.net
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program in the file lgpl21.txt
* If not, see <http://www.gnu.org/licenses/>.
*/
package net.yacy.visualization;
public class FontGenerator3Pixel {
/*
?0x20: !"#$%&'
0x28:()*+,-./
0x30:01234567
0x38:89:;<=>?
0x40:@ABCDEFG
0x48:HIJKLMNO
0x50:PQRSTUVW
0x58:XYZ[\]^_
0x60:`abcdefg
0x68:hijklmno
0x70:pqrstuvw
0x78:xyz{|}~
*/
private static final String[][] font =
{
{"...", //0x20
"...",
"..."},
{".X.",
".X.",
".+."},
{"X.X.",
"+.+.",
"...."},
{"+X+",
"X.X",
"+X+"},
{"+XX",
".X.",
"XX+"},
{".X..X",
"X.XX.",
".XXX.",
".XX.X",
"X..X."},
{"+XXX.",
"X+...",
"+X+X.",
"X.X+.",
"+X+X."},
{"..X..",
"..X..",
".....",
".....",
"....."},
{"....X", //0x28
"...X+",
"...X.",
"...X+",
"....X"},
{"X....",
"+X...",
".X...",
"+X...",
"x...."},
{".....",
".X.X.",
"++X++",
".x.X.",
"....."},
{".....",
"..X..",
".XXX.",
"..X..",
"....."},
{".....",
".....",
"..X..",
".+X..",
".X..."},
{".....",
".....",
".XXX.",
".....",
"....."},
{".....",
".....",
".....",
".....",
"..X.."},
{"....X",
"...X+",
"..X+.",
".X+..",
"X+..."},
{".XXX.", //0x30
"X+.XX",
"X.X.X",
"XX.+X",
".XXX."},
{"..X..",
".XX..",
"..X..",
"..X..",
".XXX."},
{".XXX.",
"X+.+X",
".+XX+",
"+X+..",
"XXXXX"},
{".XXX.",
"X+.+X",
"...X+",
"X+.+X",
".XXX."},
{".+XX.",
"+X+X.",
"XXXXX",
"...X.",
"...X."},
{"XXXXX",
"X....",
"XXXX.",
"...+X",
"XXXX."},
{".XXX.",
"X+...",
"XXXX+",
"X+.+X",
".XXX."},
{"XXXXX",
"..+X+",
"..X+.",
"..X..",
"..X.."},
{".XXX.", //0x38
"X+.+X",
"+XXX.",
"X+.+X",
".XXX."},
{".XXX.",
"X+.+X",
"+XXXX",
"...+X",
".XXX."},
{".....",
"..X..",
".....",
"..X..",
"....."},
{".....",
"..X..",
".....",
".+X..",
".X..."},
{"...X+",
"..X+.",
".X+..",
"..X+.",
"...X+"},
{".....",
"XXXXX",
".....",
"XXXXX",
"....."},
{"+X...",
".+X..",
"..+X.",
".+X..",
"+X..."},
{".XXX.",
"..+X.",
"..X..",
".....",
"..X.."},
{"+XXX+", //0x40
"XXX.X",
"X+XX+",
"X+...",
".XXX."},
{".+X+.",
"+X+X+",
"X+.+X",
"XXXXX",
"X...X"},
{"XXX+.",
"X.+X.",
"XXXX+",
"X..+X",
"XXXX."},
{".XXX.",
"X+...",
"X....",
"X+...",
".XXX."},
{"XXXX.",
"X..+X",
"X...X",
"X..+X",
"XXXX."},
{"XXXXX",
"X....",
"XXX..",
"X....",
"XXXXX"},
{"XXXXX",
"X....",
"XXX..",
"X....",
"X...."},
{".XXX.",
"X+...",
"X.XXX",
"X..+X",
".XXX."},
{"X...X", //0x48
"X...X",
"XXXXX",
"X...X",
"X...X"},
{"XXXXX",
"..X..",
"..X..",
"..X..",
"XXXXX"},
{"XXXXX",
"....X",
"....X",
"X+.+X",
".XXX."},
{"X..+X",
"X.+X.",
"XXX..",
"X.+X.",
"X..+X"},
{"X....",
"X....",
"X....",
"X....",
"XXXXX"},
{"X...X",
"XX.XX",
"X+X+X",
"X.+.X",
"X...X"},
{"X+..X",
"XX+.X",
"X+X+X",
"X.+XX",
"X..+X"},
{".XXX.",
"X+.+X",
"X...X",
"X+.+X",
".XXX."},
{"XXXX.", //0x50
"X..+X",
"XXXX.",
"X....",
"X...."},
{".XXX.",
"X+.+X",
"X.X+X",
"X++X+",
".XX+X"},
{"XXXX.",
"X..+X",
"XXXX.",
"X.+X.",
"X..+X"},
{".XXX+",
"X+...",
".XXX.",
"...+X",
"+XXX."},
{"XXXXX",
"..X..",
"..X..",
"..X..",
"..X.."},
{"X...X",
"X...X",
"X...X",
"X+.+X",
".XXX."},
{"X...X",
"X...X",
"X+.+X",
".X+X.",
"..X.."},
{"X...X",
"X...X",
"X.+.X",
"X+X+X",
".X.X."},
{"X+.+X", //0x58
"+X+X+",
".+X+.",
"+X+X+",
"X+.+X"},
{"X...X",
"+X.X+",
".+X+.",
"..X..",
"..X.."},
{"XXXXX",
"..+X+",
".+X+.",
"+X+..",
"XXXXX"},
{"..XXX",
"..X..",
"..X..",
"..X..",
"..XXX"},
{"X+...",
"+X+..",
".+X+.",
"..+X+",
"...+X"},
{"XXX..",
"..X..",
"..X..",
"..X..",
"XXX.."},
{".+X+.",
"+X+X+",
"X+.+X",
".....",
"....."},
{".....",
".....",
".....",
".....",
"XXXXX"},
{".X+..", //0x60
".+X..",
".....",
".....",
"....."},
{".....",
".....",
"+XXXX",
"X+..X",
".XXXX"},
{"X....",
"X....",
"XXXX.",
"X..+X",
"XXXX."},
{".....",
".....",
".XXXX",
"X+...",
".XXXX"},
{"....X",
"....X",
".XXXX",
"X+..X",
".XXXX"},
{".....",
"+XX+.",
"X.+X.",
"X+X+.",
".XXXX"},
{"..XX.",
"..X+.",
".XXX.",
"..X..",
"..X.."},
{".....",
".+XX+",
".X+.X",
".+X+X",
"XXXX."},
{"X....", //0x68
"X....",
"X+XX+",
"XX++X",
"X+..X"},
{"..X..",
".....",
"..X..",
"..X..",
"..X.."},
{"..X..",
".....",
"..X..",
".+X..",
".X+.."},
{"X....",
"X....",
"X.+XX",
"XXX+.",
"X.+XX"},
{"..X..",
"..X..",
"..X..",
"..X..",
"..X.."},
{".....",
".....",
".X+X.",
"X+X+X",
"X.X.X"},
{".....",
".....",
".XXX.",
"X+.+X",
"X...X"},
{".....",
".....",
".XXX.",
"X+.+X",
".XXX."},
{".....", //0x70
"XXXX.",
"X..+X",
"XXXX.",
"X...."},
{".....",
".XXXX",
"X+..X",
".XXXX",
"....X"},
{".....",
"..+X.",
"..X+.",
"..X..",
"..X.."},
{".....",
".....",
".+XX.",
"+X++X",
"X++X."},
{"..X..",
".XXX.",
"..X..",
"..X..",
"..X.."},
{".....",
".....",
"X...X",
"X+.+X",
".XXX."},
{".....",
".....",
"X+.+X",
"+X+X+",
".+X+."},
{".....",
".....",
"X.X.X",
"X+X+X",
".X+X."},
{".....", //0x78
".....",
".X+X.",
".+X+.",
".X+X."},
{".....",
".....",
".X+X.",
".+X+.",
"..X.."},
{".....",
".....",
".XXXX",
".+X+.",
"XXXX."},
{"...XX",
"..+X+",
".+X+.",
"..+X+",
"...XX"},
{"..X..",
"..X..",
"..X..",
"..X..",
"..X.."},
{"XX...",
"+X+..",
".+X+.",
"+X+..",
"XX..."},
{".....",
"+X+..",
"X+X+X",
"..+X+",
"....."},
{"XXXXX",
"X...X",
"X...X",
"X...X",
"XXXXX"},
};
public static void main(final String[] args) {
String[] letter;
long b;
long v;
int c = 0;
String s;
for (int i = 0; i < font.length; i++) {
letter = font[i];
b = 0;
for (int j = 0; j < 5; j++) {
b = b << 10;
v = 1 << 9;
for (int col = 0; col < 5; col++) {
if (letter[j].charAt(col) == '+') b += v;
if (letter[j].charAt(col) == 'X') b += v + (v / 2);
v = v >> 2;
}
}
s = Long.toHexString(b).toUpperCase();
while (s.length() < 14) s = "0" + s;
System.out.print("0x" + s + "L,");
c++;
if (c >= 8) {
System.out.println();
c = 0;
}
}
}
}