/** * 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; } } } }