summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Peter Christen <mc@yacy.net>2025-09-25 23:55:05 +0200
committerMichael Peter Christen <mc@yacy.net>2025-09-25 23:55:05 +0200
commit61fd46c006b128b67f1700d2d63a1a3aaeb7f30f (patch)
tree069ef66e7753df800ddd9a420ca0bba6b1aa3e38
parent3560b584502da7d58eb43110d446637c308f8741 (diff)
Enhanced fonts: new 6-Pixel font
like the greatest home computers in the 80s
-rw-r--r--source/net/yacy/htroot/AccessPicture_p.java14
-rw-r--r--source/net/yacy/htroot/WebStructurePicture_p.java10
-rw-r--r--source/net/yacy/peers/graphics/NetworkGraph.java10
-rw-r--r--source/net/yacy/visualization/ChartPlotter.java14
-rw-r--r--source/net/yacy/visualization/FontGenerator6Pixel.java275
-rw-r--r--source/net/yacy/visualization/FontGenerator7Pixel.java223
-rw-r--r--source/net/yacy/visualization/HexGridPlotter.java32
-rw-r--r--source/net/yacy/visualization/PrintTool.java142
8 files changed, 523 insertions, 197 deletions
diff --git a/source/net/yacy/htroot/AccessPicture_p.java b/source/net/yacy/htroot/AccessPicture_p.java
index e36b10f54..a7f14090f 100644
--- a/source/net/yacy/htroot/AccessPicture_p.java
+++ b/source/net/yacy/htroot/AccessPicture_p.java
@@ -106,7 +106,7 @@ public class AccessPicture_p {
}
//picture.gridDot(centerx, centery, 31, false);
picture.setColor(color_text_l);
- picture.gridPrint(centerx, centery, 5, "THIS YACY PEER", "\"" + sb.peers.myName().toUpperCase() + "\"", 0, 100);
+ picture.gridPrint(centerx, centery, 5, "THIS YACY PEER", "\"" + sb.peers.myName().toUpperCase() + "\"", 0, 100, true, false);
// left column: collect data for access from outside
final int verticalSlots = (picture.gridHeight() >> 1) - 1;
@@ -143,7 +143,7 @@ public class AccessPicture_p {
picture.gridDot(gridLeft, i * 2 + 1, 7, false, 100);
picture.gridDot(gridLeft, i * 2 + 1, 8, false, 100);
picture.setColor(color_text_l);
- picture.gridPrint(gridLeft, i * 2 + 1, 8, hosts[i].toUpperCase(), "COUNT = " + count[i] + ", TIME > " + ((time[i] >= 60000) ? ((time[i] / 60000) + " MINUTES") : ((time[i] / 1000) + " SECONDS")), -1, 100);
+ picture.gridPrint(gridLeft, i * 2 + 1, 8, hosts[i].toUpperCase(), "COUNT = " + count[i] + ", TIME > " + ((time[i] >= 60000) ? ((time[i] / 60000) + " MINUTES") : ((time[i] / 1000) + " SECONDS")), -1, 100, false, false);
if (corona) {
picture.gridLine((centerx - gridLeft) / 2 - 2, i * 2 + 1, gridLeft, i * 2 + 1,
color_line, 100, "AAAAAA", 100, 12, 11 - coronaangle / 30, 0, true);
@@ -178,7 +178,7 @@ public class AccessPicture_p {
picture.gridDot(gridRight, i * 2 + 1, 7, false, 100);
picture.gridDot(gridRight, i * 2 + 1, 8, false, 100);
picture.setColor(color_text_l);
- picture.gridPrint(gridRight, i * 2 + 1, 8, hosts[i].toUpperCase(), count[i] + " BYTES, " + time[i] + " MS DUE", 1, 100);
+ picture.gridPrint(gridRight, i * 2 + 1, 8, hosts[i].toUpperCase(), count[i] + " BYTES, " + time[i] + " MS DUE", 1, 100, false, false);
if (corona) {
picture.gridLine(gridRight, i * 2 + 1, centerx + (gridRight - centerx) / 2 + 2, i * 2 + 1,
color_line, 100, "AAAAAA", 100, 12, 11 - coronaangle / 30, 0, true);
@@ -194,8 +194,8 @@ public class AccessPicture_p {
// print headline
picture.setColor(color_text_l);
- PrintTool.print7(picture, 4, 10, 0, "YACY NODE ACCESS GRID", -1, 100);
- PrintTool.print7(picture, width - 4, 10, 0, "SNAPSHOT FROM " + new Date().toString().toUpperCase(), 1, 80);
+ PrintTool.print6(picture, 4, 10, 0, "YACY NODE ACCESS GRID", -1, 100, true, false);
+ PrintTool.print6(picture, width - 4, 10, 0, "SNAPSHOT FROM " + new Date().toString().toUpperCase(), 1, 80, true, false);
// print legend
picture.setColor(color_grid_l);
@@ -204,7 +204,7 @@ public class AccessPicture_p {
picture.gridLine(centerx - 3, 0, centerx - 3, picture.gridHeight() - 1);
picture.setColor(color_dot_l);
picture.gridLine(gridLeft, picture.gridHeight() - 1, centerx - 3, picture.gridHeight() - 1);
- picture.gridPrint(gridLeft, picture.gridHeight() - 1, 8, "", "INCOMING CONNECTIONS", -1, 80);
+ picture.gridPrint(gridLeft, picture.gridHeight() - 1, 8, "", "INCOMING CONNECTIONS", -1, 80, false, false);
picture.setColor(color_grid_l);
picture.gridLine(centerx + 3, 0, gridRight, 0);
@@ -212,7 +212,7 @@ public class AccessPicture_p {
picture.gridLine(gridRight, 0, gridRight, picture.gridHeight() - 1);
picture.setColor(color_dot_l);
picture.gridLine(centerx + 3, picture.gridHeight() - 1, gridRight, picture.gridHeight() - 1);
- picture.gridPrint(gridRight, picture.gridHeight() - 1, 8, "", "OUTGOING CONNECTIONS", 1, 80);
+ picture.gridPrint(gridRight, picture.gridHeight() - 1, 8, "", "OUTGOING CONNECTIONS", 1, 80, false, false);
return picture;
diff --git a/source/net/yacy/htroot/WebStructurePicture_p.java b/source/net/yacy/htroot/WebStructurePicture_p.java
index c7072f2e1..91e86afa0 100644
--- a/source/net/yacy/htroot/WebStructurePicture_p.java
+++ b/source/net/yacy/htroot/WebStructurePicture_p.java
@@ -104,8 +104,8 @@ public class WebStructurePicture_p {
// probably no information available
final RasterPlotter.DrawMode drawMode = (RasterPlotter.darkColor(color_back)) ? RasterPlotter.DrawMode.MODE_ADD : RasterPlotter.DrawMode.MODE_SUB;
graphPicture = new RasterPlotter(width, height, drawMode, color_back);
- PrintTool.print7(graphPicture, width / 2, height / 2, 0, "NO WEB STRUCTURE DATA AVAILABLE.", 0, 100);
- PrintTool.print7(graphPicture, width / 2, height / 2 + 20, 0, "START A WEB CRAWL TO OBTAIN STRUCTURE DATA.", 0, 100);
+ PrintTool.print6(graphPicture, width / 2, height / 2, 0, "NO WEB STRUCTURE DATA AVAILABLE.", 0, 100, true, true);
+ PrintTool.print6(graphPicture, width / 2, height / 2 + 20, 0, "START A WEB CRAWL TO OBTAIN STRUCTURE DATA.", 0, 100, true, false);
} else {
// recursively find domains, up to a specific depth
GraphPlotter graph = new GraphPlotter();
@@ -134,9 +134,9 @@ public class WebStructurePicture_p {
}
// print headline
graphPicture.setColor(Long.parseLong(color_text, 16));
- PrintTool.print7(graphPicture, 2, 10, 0, "YACY WEB-STRUCTURE ANALYSIS", -1, 100);
- if (hosts != null) PrintTool.print7(graphPicture, 2, 20, 0, "LINK ENVIRONMENT OF DOMAIN " + hosts.toUpperCase(), -1, 80);
- PrintTool.print7(graphPicture, width - 2, 10, 0, "SNAPSHOT FROM " + new Date().toString().toUpperCase(), 1, 80);
+ PrintTool.print6(graphPicture, 2, 10, 0, "YACY WEB-STRUCTURE ANALYSIS", -1, 100, true, false);
+ if (hosts != null) PrintTool.print6(graphPicture, 2, 20, 0, "LINK ENVIRONMENT OF DOMAIN " + hosts.toUpperCase(), -1, 80, true, false);
+ PrintTool.print6(graphPicture, width - 2, 10, 0, "SNAPSHOT FROM " + new Date().toString().toUpperCase(), 1, 80, true, false);
return graphPicture;
}
diff --git a/source/net/yacy/peers/graphics/NetworkGraph.java b/source/net/yacy/peers/graphics/NetworkGraph.java
index 5ed4120dc..cd501dccd 100644
--- a/source/net/yacy/peers/graphics/NetworkGraph.java
+++ b/source/net/yacy/peers/graphics/NetworkGraph.java
@@ -289,10 +289,10 @@ public class NetworkGraph {
// draw description
networkPicture.setColor(COL_HEADLINE);
- PrintTool.print7(networkPicture, 2, 10, 0, "YACY NETWORK '" + networkName.toUpperCase() + "'", -1, 100);
- PrintTool.print7(networkPicture, 2, 20, 0, networkTitle.toUpperCase(), -1, 80);
- PrintTool.print7(networkPicture, width - 2, 10, 0, "SNAPSHOT FROM " + new Date().toString().toUpperCase(), 1, 80);
- PrintTool.print7(networkPicture, width - 2, 20, 0, "DRAWING OF " + totalCount + " SELECTED PEERS", 1, 80);
+ PrintTool.print6(networkPicture, 2, 10, 0, "YACY NETWORK '" + networkName.toUpperCase() + "'", -1, 100, true, false);
+ PrintTool.print6(networkPicture, 2, 20, 0, networkTitle.toUpperCase(), -1, 80, true, false);
+ PrintTool.print6(networkPicture, width - 2, 10, 0, "SNAPSHOT FROM " + new Date().toString().toUpperCase(), 1, 80, true, false);
+ PrintTool.print6(networkPicture, width - 2, 20, 0, "DRAWING OF " + totalCount + " SELECTED PEERS", 1, 80, true, false);
// wait for draw termination
//for (final Thread t: drawThreads) try { t.join(); } catch (final InterruptedException ee) {}
@@ -357,7 +357,7 @@ public class NetworkGraph {
this.img.arcLine(this.centerX, this.centerY, this.innerradius + 18, this.innerradius + linelength, angle, true, this.colorLine, 0x444444l, 12, this.coronaangle / 30, 0, true);
// draw text
this.img.setColor(this.colorText);
- PrintTool.arcPrint7(this.img, this.centerX, this.centerY, this.innerradius + linelength, angle, name, 100);
+ PrintTool.arcPrint6(this.img, this.centerX, this.centerY, this.innerradius + linelength, angle, name, 100, false, false);
// draw corona around dot for crawling activity
final int ppmx = Math.min(this.seed.getPPM() / 20, 10);
diff --git a/source/net/yacy/visualization/ChartPlotter.java b/source/net/yacy/visualization/ChartPlotter.java
index d98407d1c..a3df7b07c 100644
--- a/source/net/yacy/visualization/ChartPlotter.java
+++ b/source/net/yacy/visualization/ChartPlotter.java
@@ -62,11 +62,11 @@ public class ChartPlotter extends RasterPlotter {
//this.foregroundColor = foregroundColor;
if (name != null) {
if (foregroundColor != null) this.setColor(foregroundColor);
- PrintTool.print7(this, width / 2 - name.length() * 4, 10, 0, name, -1, 100);
+ PrintTool.print6(this, (width - name.length() * 7) / 2, 10, 0, name, -1, 100, true, false);
}
if (subline != null) {
if (lightColor != null) this.setColor(lightColor);
- PrintTool.print7(this, width / 2 - subline.length() * 4, 20, 0, subline, -1, 100);
+ PrintTool.print6(this, (width - subline.length() * 7) / 2, 20, 0, subline, -1, 100, false, false);
}
}
@@ -101,7 +101,7 @@ public class ChartPlotter extends RasterPlotter {
final int y = (int)((long)(coord_y - this.offsets[dimension_y]) * (long)(this.pixels[dimension_y]) / (this.scales[dimension_y]));
if (dotsize == 1) plot(this.leftborder + x, this.height - this.bottomborder - y, 100);
else dot(this.leftborder + x, this.height - this.bottomborder - y, dotsize, true, 100);
- if (anot != null) PrintTool.print7(this, this.leftborder + x + dotsize + 2 + ((anotAngle == 315) ? -9 : 0), this.height - this.bottomborder - y + ((anotAngle == 315) ? -3 : 0), anotAngle, anot, (anotAngle == 0) ? (anot.length() * 6 + x > this.width ? 1 : -1) : ((anotAngle == 315) ? 1 : 0), 100);
+ if (anot != null) PrintTool.print6(this, this.leftborder + x + dotsize + 2 + ((anotAngle == 315) ? -9 : 0), this.height - this.bottomborder - y + ((anotAngle == 315) ? -3 : 0), anotAngle, anot, (anotAngle == 0) ? (anot.length() * 6 + x > this.width ? 1 : -1) : ((anotAngle == 315) ? 1 : 0), 100, false, false);
}
public void chartLine(final int dimension_x, final int dimension_y, final float coord_x1, final int coord_y1, final float coord_x2, final int coord_y2) {
@@ -133,12 +133,12 @@ public class ChartPlotter extends RasterPlotter {
}
setColor(colorNaming);
line(x, y - 3, x, y + 3, 100);
- PrintTool.print7(this, x, y + 10, 0, Integer.toString(s), -1, 80);
+ PrintTool.print6(this, x, y + 10, 0, Integer.toString(s), -1, 80, false, false);
x += pixelperscale;
s += scale;
}
setColor(colorNaming);
- PrintTool.print7(this, this.width - this.rightborder, y + 20, 0, name, 1, 80);
+ PrintTool.print6(this, this.width - this.rightborder, y + 20, 0, name, 1, 80, false, false);
line(this.leftborder - 4, y, this.width - this.rightborder + 4, y, 100);
}
@@ -170,12 +170,12 @@ public class ChartPlotter extends RasterPlotter {
line(x - 3, y, x + 3, y, 100);
s1 = (s >= 1000000 && s % 1000000 == 0) ? Integer.toString(s / 1000000) + "M" : (s >= 1000 && s % 1000 == 0) ? Integer.toString(s / 1000) + "K" : Integer.toString(s);
if (s1.length() > s1max) s1max = s1.length();
- PrintTool.print7(this, (left) ? this.leftborder - 4 : this.width - this.rightborder + 4, y, 0, s1, (left) ? 1 : -1, 80);
+ PrintTool.print6(this, (left) ? this.leftborder - 4 : this.width - this.rightborder + 4, y, 0, s1, (left) ? 1 : -1, 80, false, false);
y -= pixelperscale;
s += scale;
}
setColor(colorNaming);
- PrintTool.print7(this, (left) ? Math.max(8, x - s1max * 8 - 12) : x + s1max * 8 + 12, this.height - this.bottomborder, 90, name, -1, 80);
+ PrintTool.print6(this, (left) ? Math.max(8, x - s1max * 8 - 12) : x + s1max * 8 + 12, this.height - this.bottomborder, 90, name, -1, 80, false, false);
line(x, this.topborder - 4, x, this.height - this.bottomborder + 4, 100);
}
diff --git a/source/net/yacy/visualization/FontGenerator6Pixel.java b/source/net/yacy/visualization/FontGenerator6Pixel.java
new file mode 100644
index 000000000..ac4324c1e
--- /dev/null
+++ b/source/net/yacy/visualization/FontGenerator6Pixel.java
@@ -0,0 +1,275 @@
+/**
+ * FontGenerator6Pixel
+ * Copyright 2025 by Michael Christen
+ * First released 23.09.2025 at https://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 FontGenerator6Pixel {
+
+ /**
+ * font: a character matrix of 96 characters:
+ *
+ * 0x20: !"#$%&'
+ * 0x28:()*+,-./
+ * 0x30:01234567
+ * 0x38:89:;<=>?
+ * 0x40:@ABCDEFG
+ * 0x48:HIJKLMNO
+ * 0x50:PQRSTUVW
+ * 0x58:XYZ[\]^_
+ * 0x60:`abcdefg
+ * 0x68:hijklmno
+ * 0x70:pqrstuvw
+ * 0x78:xyz{|}~
+ */
+ public static final String[] font_light = {
+ "......", "..X...", ".X..X.", ".X..X.", "..X...", "XX...X", "..X...", "...X..",
+ "......", "..X...", ".X..X.", "XXXXXX", "XXXXX.", "XX..X.", ".X.X..", "..X...",
+ "......", "..X...", "......", ".X..X.", "X.X...", "...X..", "..X...", "......",
+ "......", "..X...", "......", ".X..X.", "XXXXX.", "..X...", ".X.X.X", "......",
+ "......", "......", "......", "XXXXXX", "..X.X.", ".X..XX", "X...X.", "......",
+ "......", "..X...", "......", ".X..X.", "XXXXX.", "X...XX", ".XXX.X", "......",
+ "......", "......", "......", "......", "..X...", "......", "......", "......",
+
+ "...X..", "..X...", "......", "......", "......", "......", "......", "......",
+ "..X...", "...X..", "..X.X.", "...X..", "......", "......", "......", "....X.",
+ "..X...", "...X..", "...X..", "...X..", "......", "......", "......", "...X..",
+ "..X...", "...X..", ".XXXXX", ".XXXXX", "......", ".XXXXX", "......", "..X...",
+ "..X...", "...X..", "...X..", "...X..", "..X...", "......", "..XX..", ".X....",
+ "...X..", "..X...", "..X.X.", "...X..", "..X...", "......", "..XX..", "X.....",
+ "......", "......", "......", "......", ".X....", "......", "......", "......",
+
+ ".XXXX.", "..XX..", ".XXXX.", ".XXXX.", "...X..", "XXXXXX", ".XXXX.", "XXXXXX",
+ "X...XX", ".X.X..", "X....X", "X....X", "..XX..", "X.....", "X.....", ".....X",
+ "X..X.X", "...X..", ".....X", "...XX.", ".X.X..", "XXXXX.", "XXXXX.", "....X.",
+ "X.X..X", "...X..", ".XXXX.", ".....X", "X..X..", ".....X", "X....X", "...X..",
+ "XX...X", "...X..", "X.....", "X....X", "XXXXXX", "X....X", "X....X", "..X...",
+ ".XXXX.", ".XXXXX", "XXXXXX", ".XXXX.", "...X..", ".XXXX.", ".XXXX.", "..X...",
+ "......", "......", "......", "......", "......", "......", "......", "......",
+
+ ".XXXX.", ".XXXX.", "......", "......", "......", "......", "......", ".XXXX.",
+ "X....X", "X....X", "......", "..X...", "...X..", "......", "..X...", "X....X",
+ ".XXXX.", "X....X", "..X...", "......", "..X...", ".XXXXX", "...X..", "....X.",
+ "X....X", ".XXXXX", "......", "......", ".X....", "......", "....X.", "...X..",
+ "X....X", ".....X", "......", "..X...", "..X...", ".XXXXX", "...X..", "......",
+ ".XXXX.", ".XXXX.", "..X...", "..X...", "...X..", "......", "..X...", "...X..",
+ "......", "......", "......", ".X....", "......", "......", "......", "......",
+
+ ".XXXX.", ".XXXX.", "XXXXX.", ".XXXX.", "XXXX..", "XXXXXX", "XXXXXX", ".XXXX.",
+ "X..X.X", "X....X", "X....X", "X....X", "X...X.", "X.....", "X.....", "X....X",
+ "X.X.XX", "X....X", "XXXXX.", "X.....", "X....X", "XXXXX.", "XXXXX.", "X.....",
+ "X.XXXX", "XXXXXX", "X....X", "X.....", "X....X", "X.....", "X.....", "X..XXX",
+ "X.....", "X....X", "X....X", "X....X", "X...X.", "X.....", "X.....", "X....X",
+ ".XXXX.", "X....X", "XXXXX.", ".XXXX.", "XXXX..", "XXXXXX", "X.....", ".XXXX.",
+ "......", "......", "......", "......", "......", "......", "......", "......",
+
+ "X....X", ".XXXXX", ".....X", "X...X.", "X.....", "X....X", "X....X", ".XXXX.",
+ "X....X", "...X..", ".....X", "X..X..", "X.....", "XX..XX", "XX...X", "X....X",
+ "XXXXXX", "...X..", ".....X", "XXX...", "X.....", "X.XX.X", "X.X..X", "X....X",
+ "X....X", "...X..", "X....X", "X..X..", "X.....", "X....X", "X..X.X", "X....X",
+ "X....X", "...X..", "X....X", "X...X.", "X.....", "X....X", "X...XX", "X....X",
+ "X....X", ".XXXXX", ".XXXX.", "X....X", "XXXXXX", "X....X", "X....X", ".XXXX.",
+ "......", "......", "......", "......", "......", "......", "......", "......",
+
+ "XXXXX.", ".XXXX.", "XXXXX.", ".XXXX.", ".XXXXX", "X....X", "X....X", "X....X",
+ "X....X", "X....X", "X....X", "X.....", "...X..", "X....X", "X....X", "X....X",
+ "X....X", "X....X", "X....X", ".XXXX.", "...X..", "X....X", "X....X", "X....X",
+ "XXXXX.", "X.X..X", "XXXXX.", ".....X", "...X..", "X....X", "X....X", "X....X",
+ "X.....", "X..X.X", "X...X.", "X....X", "...X..", "X....X", ".X..X.", "X.XX.X",
+ "X.....", ".XXXX.", "X....X", ".XXXX.", "...X..", ".XXXX.", "..XX..", ".X..X.",
+ "......", "......", "......", "......", "......", "......", "......", "......",
+
+ "X....X", ".X...X", "XXXXXX", "...XXX", "......", "XXX...", "..X...", "......",
+ ".X..X.", ".X...X", "....X.", "...X..", "X.....", "..X...", ".X.X..", "......",
+ "..XX..", "..X.X.", "...X..", "...X..", ".X....", "..X...", "X...X.", "......",
+ "..XX..", "...X..", "..X...", "...X..", "..X...", "..X...", "......", "......",
+ ".X..X.", "...X..", ".X....", "...X..", "...X..", "..X...", "......", "......",
+ "X....X", "...X..", "XXXXXX", "...XXX", "....X.", "XXX...", "......", "......",
+ "......", "......", "......", "......", "......", "......", "......", "XXXXXX",
+
+ "..X...", "......", ".X....", "......", "....X.", "......", "...XX.", "......",
+ "...X..", ".XXX..", ".X....", "..XXX.", "....X.", ".XXX..", "..X...", ".XXXX.",
+ "......", "....X.", ".XXXX.", ".X....", ".XXXX.", "X...X.", "..XX..", "X...X.",
+ "......", ".XXXX.", ".X...X", ".X....", "X...X.", "XXXX..", "..X...", "X...X.",
+ "......", "X...X.", ".X...X", ".X....", "X...X.", "X.....", "..X...", ".XXXX.",
+ "......", ".XXXX.", ".XXXX.", "..XXX.", ".XXXX.", ".XXXX.", "..X...", "....X.",
+ "......", "......", "......", "......", "......", "......", "......", ".XXX..",
+
+ "X.....", "..X...", "....X.", ".X....", "..X...", "......", "......", "......",
+ "X.....", "......", "......", ".X.X..", "..X...", "XX.X..", "XXXX..", ".XXX..",
+ "XXXX..", ".XX...", "....X.", ".XX...", "..X...", "X.X.X.", "X...X.", "X...X.",
+ "X...X.", "..X...", "....X.", ".XX...", "..X...", "X.X.X.", "X...X.", "X...X.",
+ "X...X.", "..X...", "....X.", ".X.X..", "..X...", "X.X.X.", "X...X.", "X...X.",
+ "X...X.", ".XXX..", ".X..X.", ".X..X.", "...XX.", "X.X.X.", "X...X.", ".XXX..",
+ "......", "......", "..XX..", "......", "......", "......", "......", "......",
+
+ "......", "......", "......", "......", "..X...", "......", "......", "......",
+ "XXXX..", ".XXXX.", "..XXX.", ".XXX..", ".XXX..", "X...X.", "X...X.", "X...X.",
+ "X...X.", "X...X.", ".X....", "X.....", "..X...", "X...X.", "X...X.", "X.X.X.",
+ "X...X.", "X...X.", ".X....", ".XXX..", "..X...", "X...X.", ".X.X..", "X.X.X.",
+ "XXXX..", ".XXXX.", ".X....", "....X.", "..X...", "X...X.", ".X.X..", "X.X.X.",
+ "X.....", "....X.", ".X....", "XXXX..", "...X..", ".XXX..", "..X...", ".X.X..",
+ "X.....", "....XX", "......", "......", "......", "......", "......", "......",
+
+ "......", "......", "......", "...XXX", "...X..", "XXX...", "......", "XXXXXX",
+ "X...X.", "X...X.", "XXXXX.", "...X..", "...X..", "..X...", "..X.X.", "X....X",
+ ".X.X..", "X...X.", "...X..", "XXX...", "...X..", "...XXX", ".X.X..", "X....X",
+ "..X...", "X...X.", "..X...", "...X..", "...X..", "..X...", "......", "X....X",
+ ".X.X..", ".XXXX.", ".X....", "...X..", "...X..", "..X...", "......", "X....X",
+ "X...X.", "....X.", "XXXXX.", "...XXX", "...X..", "XXX...", "......", "X....X",
+ "......", ".XXX..", "......", "......", "......", "......", "......", "XXXXXX",
+ };
+
+ public static final String[] font_bold = {
+ "......", "..XX..", "XX..XX", ".XX.X.", "..XX..", "XX...X", ".XXX..", "..XX..",
+ "......", "..XX..", "XX..XX", ".XX.X.", ".XXXXX", "XX..XX", "XX.XX.", "..XX..",
+ "......", "..XX..", "......", "XXXXXX", "X.....", "...XX.", ".XXX..", "..XX..",
+ "......", "..XX..", "......", ".XX.X.", ".XXXX.", "..XX..", ".XX...", "......",
+ "......", "..XX..", "......", "XXXXXX", ".....X", ".XX...", "XX.XXX", "......",
+ "......", "......", "......", ".XX.X.", "XXXXX.", "XX..XX", "XX.XX.", "......",
+ "......", "..XX..", "......", ".XX.X.", "..XX..", "X...XX", ".XXXXX", "......",
+
+ "...XX.", ".XX...", "......", "......", "......", "......", "......", "......",
+ "..XX..", "..XX..", "XX..XX", "..XX..", "......", "......", "......", "....XX",
+ ".XX...", "...XX.", "..XX..", "..XX..", "......", "......", "......", "...XX.",
+ ".XX...", "...XX.", "XXXXXX", "XXXXXX", "......", "XXXXXX", "......", "..XX..",
+ ".XX...", "...XX.", "..XX..", "..XX..", "..XX..", "......", "..XX..", ".XX...",
+ "..XX..", "..XX..", "XX..XX", "..XX..", "..XX..", "......", "..XX..", "XX....",
+ "...XX.", ".XX...", "......", "......", ".XX...", "......", "......", "......",
+
+ ".XXXX.", "..XX..", ".XXXX.", ".XXXX.", "...XX.", "XXXXXX", ".XXXX.", "XXXXXX",
+ "XX..XX", "..XX..", "XX..XX", "XX..XX", "..XXX.", "XX....", "XX..XX", "XX..XX",
+ "XX.XXX", ".XXX..", "....XX", "....XX", ".XXXX.", "XXXXX.", "XX....", "...XX.",
+ "XXX.XX", "..XX..", "...XX.", "..XXX.", "XX.XX.", "....XX", "XXXXX.", "..XX..",
+ "XX..XX", "..XX..", ".XX...", "....XX", "XXXXXX", "....XX", "XX..XX", "..XX..",
+ "XX..XX", "..XX..", "XX....", "XX..XX", "...XX.", "XX..XX", "XX..XX", "..XX..",
+ ".XXXX.", "XXXXXX", "XXXXXX", ".XXXX.", "...XX.", ".XXXX.", ".XXXX.", "..XX..",
+
+ ".XXXX.", ".XXXX.", "......", "......", "....XX", "......", "XX....", ".XXXX.",
+ "XX..XX", "XX..XX", "......", "......", "...XX.", "......", ".XX...", "XX..XX",
+ "XX..XX", "XX..XX", "..XX..", "..XX..", ".XX...", "XXXXXX", "...XX.", "....XX",
+ ".XXXX.", ".XXXXX", "..XX..", "..XX..", "XX....", "......", "....XX", "...XX.",
+ "XX..XX", "....XX", "......", "......", ".XX...", "XXXXXX", "...XX.", "..XX..",
+ "XX..XX", "XX..XX", "..XX..", "..XX..", "...XX.", "......", ".XX...", "......",
+ ".XXXX.", ".XXXX.", "..XX..", ".XX...", "....XX", "......", "XX....", "..XX..",
+
+ ".XXXX.", "..XX..", "XXXXX.", ".XXXX.", "XXXX..", "XXXXXX", "XXXXXX", ".XXXX.",
+ "XX..XX", ".XXXX.", "XX..XX", "XX..XX", "XX.XX.", "XX....", "XX....", "XX..XX",
+ "XX.XXX", "XX..XX", "XX..XX", "XX....", "XX..XX", "XX....", "XX....", "XX....",
+ "XX.XXX", "XXXXXX", "XXXXX.", "XX....", "XX..XX", "XXXX..", "XXXX..", "XX.XXX",
+ "XX....", "XX..XX", "XX..XX", "XX....", "XX..XX", "XX....", "XX....", "XX..XX",
+ "XX...X", "XX..XX", "XX..XX", "XX..XX", "XX.XX.", "XX....", "XX....", "XX..XX",
+ ".XXXX.", "XX..XX", "XXXXX.", ".XXXX.", "XXXX..", "XXXXXX", "XX....", ".XXXX.",
+
+ "XX..XX", ".XXXX.", "..XXXX", "XX..XX", "XX....", "XX...X", "XX..XX", ".XXXX.",
+ "XX..XX", "..XX..", "...XX.", "XX.XX.", "XX....", "XXX.XX", "XXX.XX", "XX..XX",
+ "XX..XX", "..XX..", "...XX.", "XXXX..", "XX....", "XXXXXX", "XXXXXX", "XX..XX",
+ "XXXXXX", "..XX..", "...XX.", "XX....", "XX....", "XX.X.X", "XXXXXX", "XX..XX",
+ "XX..XX", "..XX..", "...XX.", "XXXX..", "XX....", "XX...X", "XX.XXX", "XX..XX",
+ "XX..XX", "..XX..", "XX.XX.", "XX.XX.", "XX....", "XX...X", "XX..XX", "XX..XX",
+ "XX..XX", ".XXXX.", ".XXX..", "XX..XX", "XXXXXX", "XX...X", "XX..XX", ".XXXX.",
+
+ "XXXXX.", ".XXXX.", "XXXXX.", ".XXXX.", "XXXXXX", "XX..XX", "XX..XX", "XX...X",
+ "XX..XX", "XX..XX", "XX..XX", "XX..XX", "..XX..", "XX..XX", "XX..XX", "XX...X",
+ "XX..XX", "XX..XX", "XX..XX", "XX....", "..XX..", "XX..XX", "XX..XX", "XX...X",
+ "XXXXX.", "XX..XX", "XXXXX.", ".XXXX.", "..XX..", "XX..XX", "XX..XX", "XX...X",
+ "XX....", "XX..XX", "XXXX..", "....XX", "..XX..", "XX..XX", "XX..XX", "XX.X.X",
+ "XX....", ".XXXX.", "XX.XX.", "XX..XX", "..XX..", "XX..XX", ".XXXX.", "XXX.XX",
+ "XX....", "...XXX", "XX..XX", ".XXXX.", "..XX..", ".XXXX.", "..XX..", "XX...X",
+
+ "XX..XX", "XX..XX", "XXXXXX", ".XXXX.", "......", ".XXXX.", "..XX..", "......",
+ "XX..XX", "XX..XX", "....XX", ".XX...", "XX....", "...XX.", ".XXXX.", "......",
+ ".XXXX.", ".XXXX.", "...XX.", ".XX...", ".XX...", "...XX.", "XX..XX", "......",
+ "..XX..", "..XX..", "..XX..", ".XX...", "..XX..", "...XX.", "......", "......",
+ ".XXXX.", "..XX..", ".XX...", ".XX...", "...XX.", "...XX.", "......", "......",
+ "XX..XX", "..XX..", "XX....", ".XX...", "....XX", "...XX.", "......", "......",
+ "XX..XX", "..XX..", "XXXXXX", ".XXXX.", "......", ".XXXX.", "......", "XXXXXX",
+
+ ".XX...", "......", "......", "......", "......", "......", "......", "......",
+ "..XX..", "......", "XX....", "......", "....XX", "......", "...XXX", "......",
+ "......", ".XXXX.", "XX....", ".XXXX.", "....XX", ".XXXX.", "..XX..", ".XXXXX",
+ "......", "....XX", "XXXXX.", "XX....", ".XXXXX", "XX..XX", ".XXXXX", "XX..XX",
+ "......", ".XXXXX", "XX..XX", "XX....", "XX..XX", "XXXXXX", "..XX..", ".XXXXX",
+ "......", "XX..XX", "XX..XX", "XX....", "XX..XX", "XX....", "..XX..", "....XX",
+ "......", ".XXXXX", "XXXXX.", ".XXXX.", ".XXXXX", ".XXXX.", "..XX..", "XXXXX.",
+
+ "......", "..XX..", "...XX.", "......", "......", "......", "......", "......",
+ "XX....", "......", "......", "XX....", ".XXX..", "......", "......", "......",
+ "XX....", ".XXX..", "...XX.", "XX....", "..XX..", "XX.XX.", "XXXXX.", ".XXXX.",
+ "XXXXX.", "..XX..", "...XX.", "XX.XX.", "..XX..", "XXXXXX", "XX..XX", "XX..XX",
+ "XX..XX", "..XX..", "...XX.", "XXXX..", "..XX..", "XXXXXX", "XX..XX", "XX..XX",
+ "XX..XX", "..XX..", "...XX.", "XX.XX.", "..XX..", "XX.X.X", "XX..XX", "XX..XX",
+ "XX..XX", ".XXXX.", "XXXX..", "XX..XX", ".XXXX.", "XX...X", "XX..XX", ".XXXX.",
+
+ "......", "......", "......", "......", "......", "......", "......", "......",
+ "......", "......", "......", "......", "..XX..", "......", "......", "......",
+ "XXXXX.", ".XXXXX", "XXXXX.", ".XXXXX", "XXXXXX", "XX..XX", "XX..XX", "XX...X",
+ "XX..XX", "XX..XX", "XX..XX", "XX....", "..XX..", "XX..XX", "XX..XX", "XX.X.X",
+ "XXXXX.", ".XXXXX", "XX....", ".XXXX.", "..XX..", "XX..XX", "XX..XX", "XXXXXX",
+ "XX....", "....XX", "XX....", "....XX", "..XX..", "XX..XX", ".XXXX.", ".XXXXX",
+ "XX....", "....XX", "XX....", "XXXXX.", "...XXX", ".XXXXX", "..XX..", ".XX.XX",
+
+ "......", "......", "......", "...XXX", "..XX..", "XXX...", "......", "XXXXXX",
+ "......", "......", "......", "..XX..", "..XX..", "..XX..", "......", "X....X",
+ "XX..XX", "XX..XX", "XXXXXX", "..XX..", "..XX..", "..XX..", ".X....", "X....X",
+ ".XXXX.", "XX..XX", "...XX.", "XXX...", "..XX..", "...XXX", "X.XX.X", "X....X",
+ "..XX..", ".XXXXX", "..XX..", "..XX..", "..XX..", "..XX..", "....X.", "X....X",
+ ".XXXX.", "...XX.", ".XX...", "..XX..", "..XX..", "..XX..", "......", "X....X",
+ "XX..XX", "XXXX..", "XXXXXX", "...XXX", "..XX..", "XXX...", "......", "XXXXXX"
+ };
+
+ public static void fontConverter(final String[] font) {
+
+ final int matrix_width = 8;
+ final int matrix_height = 12;
+ final int font_width = 6;
+ final int font_height = 7;
+
+ for (int matrix_y = 0; matrix_y < matrix_height; matrix_y++) {
+ for (int matrix_x = 0; matrix_x < matrix_width; matrix_x++) {
+ int start = (matrix_y * matrix_width * font_height) + matrix_x;
+ long b = 0;
+ for (int row = 0; row < font_height; row++) {
+ b = b << font_width;
+ long v = 1 << (font_width - 1);
+ for (int col = 0; col < font_width; col++) {
+ int i = start + matrix_width * row;
+ if (font[i].charAt(col) == 'X') b += v;
+ else if (font[i].charAt(col) != '.') throw new RuntimeException("wrong char: " + font[i].charAt(col));
+ v = v >> 1;
+ }
+ }
+ String s = Long.toHexString(b).toUpperCase();
+ while (s.length() < 12) s = "0" + s;
+ System.out.print("0x" + s + "L,");
+ }
+ System.out.println();
+ }
+
+ }
+
+ public static void main(final String[] args) {
+
+ fontConverter(font_light);
+ System.out.println();
+ fontConverter(font_bold);
+
+ }
+
+}
diff --git a/source/net/yacy/visualization/FontGenerator7Pixel.java b/source/net/yacy/visualization/FontGenerator7Pixel.java
index ea2e2aca8..8076fbb0b 100644
--- a/source/net/yacy/visualization/FontGenerator7Pixel.java
+++ b/source/net/yacy/visualization/FontGenerator7Pixel.java
@@ -42,116 +42,117 @@ public class FontGenerator7Pixel {
* 0x78:xyz{|}~
*/
public static final String[] font = {
- ".......", "...X...", "..X.X..", "..X.X..", "...XX..", ".XX...X", ".XX....", "...X...",
- ".......", "...X...", "..X.X..", "..X.X..", ".XXXXXX", ".XX..X.", "X..X...", "...X...",
- ".......", "...X...", ".......", "XXXXXXX", "X..XX..", "....X..", ".XX....", ".......",
- ".......", "...X...", ".......", "..X.X..", ".XXXXX.", "...X...", "..X...X", ".......",
- ".......", "...X...", ".......", "XXXXXXX", "...XX.X", "..X....", "X..X.X.", ".......",
- ".......", ".......", ".......", "..X.X..", "XXXXXX.", ".X...XX", "X...X..", ".......",
- ".......", "...X...", ".......", "..X.X..", "...X...", "X....XX", ".XXX..X", ".......",
- ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
-
- "....X..", "...X...", "...X...", ".......", ".......", ".......", ".......", "......X",
- "...X...", "....X..", ".X.X.X.", "...X...", ".......", ".......", ".......", ".....X.",
- "..X....", ".....X.", "..XXX..", "...X...", ".......", ".......", ".......", "....X..",
- "..X....", ".....X.", "XXXXXXX", ".XXXXX.", ".......", ".XXXXX.", ".......", "...X...",
- "..X....", ".....X.", "..XXX..", "...X...", ".......", ".......", ".......", "..X....",
- "...X...", "....X..", ".X.X.X.", "...X...", "...XX..", ".......", "...XX..", ".X.....",
- "....X..", "...X...", "...X...", ".......", "...XX..", ".......", "...XX..", "X......",
- ".......", ".......", ".......", ".......", "....X..", ".......", ".......", ".......",
-
- ".XXXXX.", "...X...", "..XXX..", "..XXX..", ".....X.", ".XXXXXX", "..XXX..", ".XXXXX.",
- "X....XX", "..XX...", ".X...X.", ".X...X.", "....XX.", ".X.....", ".X...X.", ".....X.",
- "X...X.X", ".X.X...", ".....X.", ".....X.", "...X.X.", ".X.....", ".X.....", ".....X.",
- "X..X..X", "...X...", "....X..", "...XX..", "..X..X.", ".XXXXX.", ".XXXX..", "....X..",
- "X.X...X", "...X...", "...X...", ".....X.", ".XXXXXX", "......X", ".X...X.", "...X...",
- "XX....X", "...X...", "..X....", ".X...X.", ".....X.", "......X", ".X...X.", "...X...",
- ".XXXXX.", ".XXXXX.", ".XXXXX.", "..XXX..", ".....X.", ".XXXXX.", "..XXX..", "...X...",
- ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
-
- "..XXX..", "..XXX..", ".......", ".......", ".....XX", ".......", "XX.....", "..XXX..",
- ".X...X.", ".X...X.", ".......", ".......", "...XX..", ".......", "..XX...", ".X...X.",
- ".X...X.", ".X...X.", "...XX..", "...XX..", ".XX....", "..XXXX.", "....XX.", ".....X.",
- "..XXX..", "..XXXX.", "...XX..", "...XX..", "X......", ".......", "......X", "....X..",
- ".X...X.", ".....X.", ".......", ".......", ".XX....", "..XXXX.", "....XX.", "...X...",
- ".X...X.", ".X...X.", "...XX..", "...XX..", "...XX..", ".......", "..XX...", ".......",
- "..XXX..", "..XXX..", "...XX..", "...XX..", ".....XX", ".......", "XX.....", "...X...",
- ".......", ".......", ".......", "....X..", ".......", ".......", ".......", ".......",
-
- ".XXXXX.", ".XXXXX.", "XXXXXX.", "..XXXX.", "XXXXX..", "XXXXXXX", "XXXXXXX", ".XXXXX.",
- "X.....X", "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", "XXXXXXX", "XXXXXX.", "X......", "X.....X", "XXXXXX.", "XXXXXX.", "X..XXXX",
- "X...XXX", "X.....X", "X.....X", "X......", "X.....X", "X......", "X......", "X.....X",
- "X......", "X.....X", "X.....X", ".X....X", "X....X.", "X......", "X......", "X.....X",
- ".XXXXXX", "X.....X", "XXXXXX.", "..XXXX.", "XXXXX..", "XXXXXXX", "X......", ".XXXXX.",
- ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
-
- "X.....X", "..XXX..", "...XXX.", "X....XX", "X......", "X.....X", "X.....X", ".XXXXX.",
- "X.....X", "...X...", "....X..", "X...XX.", "X......", "XX...XX", "XX....X", "X.....X",
- "X.....X", "...X...", "....X..", "X..XX..", "X......", "X.X.X.X", "X.X...X", "X.....X",
- "XXXXXXX", "...X...", "....X..", "XXX....", "X......", "X..X..X", "X..X..X", "X.....X",
- "X.....X", "...X...", "....X..", "X..XX..", "X......", "X.....X", "X...X.X", "X.....X",
- "X.....X", "...X...", "X...X..", "X...XX.", "X......", "X.....X", "X....XX", "X.....X",
- "X.....X", "..XXX..", ".XXX...", "X....XX", "XXXXXXX", "X.....X", "X.....X", ".XXXXX.",
- ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
-
- "XXXXXX.", ".XXXXX.", "XXXXXX.", ".XXXXX.", "XXXXXXX", "X.....X", "X.....X", "X.....X",
- "X.....X", "X.....X", "X.....X", "X.....X", "...X...", "X.....X", "X.....X", "X.....X",
- "X.....X", "X.....X", "X.....X", "X......", "...X...", "X.....X", "X.....X", "X.....X",
- "XXXXXX.", "X.....X", "XXXXXX.", ".XXXXX.", "...X...", "X.....X", "X.....X", "X.....X",
- "X......", "X.....X", "X...X..", "......X", "...X...", "X.....X", ".X...X.", "X..X..X",
- "X......", "X...X.X", "X....X.", "X.....X", "...X...", "X.....X", "..X.X..", "X.X.X.X",
- "X......", ".XXXXX.", "X.....X", ".XXXXX.", "...X...", ".XXXXX.", "...X...", ".X...X.",
- ".......", "......X", ".......", ".......", ".......", ".......", ".......", ".......",
-
- "X.....X", "X.....X", "XXXXXXX", "..XXXX.", "X......", "..XXXX.", "...X...", ".......",
- ".X...X.", ".X...X.", ".....X.", "..X....", ".X.....", ".....X.", "..X.X..", ".......",
- "..X.X..", "..X.X..", "....X..", "..X....", "..X....", ".....X.", ".X...X.", ".......",
- "...X...", "...X...", "...X...", "..X....", "...X...", ".....X.", ".......", ".......",
- "..X.X..", "...X...", "..X....", "..X....", "....X..", ".....X.", ".......", ".......",
- ".X...X.", "...X...", ".X.....", "..X....", ".....X.", ".....X.", ".......", ".......",
- "X.....X", "...X...", "XXXXXXX", "..XXXX.", "......X", "..XXXX.", ".......", "XXXXXXX",
- ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
-
- "...X...", ".......", "X......", ".......", "......X", ".......", "...XX..", ".......",
- "....X..", ".......", "X......", ".......", "......X", ".......", "..X....", ".......",
- ".......", ".XXXX..", "X......", ".XXXXXX", "......X", ".XXXXX.", "..X....", ".XXXXX.",
- ".......", ".....X.", "XXXXXX.", "X......", ".XXXXXX", "X.....X", ".XXX...", "X.....X",
- ".......", ".XXXXX.", "X.....X", "X......", "X.....X", "XXXXXXX", "..X....", "X.....X",
- ".......", "X....X.", "X.....X", "X......", "X.....X", "X......", "..X....", ".XXXXXX",
- ".......", ".XXXX.X", "XXXXXX.", ".XXXXXX", ".XXXXXX", ".XXXXX.", "..X....", "......X",
- ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".XXXXX.",
-
- "X......", ".......", ".......", "X......", "..XX...", ".......", ".......", ".......",
- "X......", "...X...", "....X..", "X......", "...X...", ".......", ".......", ".......",
- "X......", ".......", ".......", "X....XX", "...X...", ".XX.XX.", ".XXXXX.", ".XXXXX.",
- "XXXXXX.", "..XX...", "...XX..", "X..XX..", "...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..XX..", "...X...", "X..X..X", "X.....X", "X.....X",
- "X.....X", "..XXX..", "....X..", "X....XX", "..XXX..", "X..X..X", "X.....X", ".XXXXX.",
- ".......", ".......", "..XX...", ".......", ".......", ".......", ".......", ".......",
-
- ".......", ".......", ".......", ".......", "...X...", ".......", ".......", ".......",
- ".......", ".......", ".......", ".......", "...X...", ".......", ".......", ".......",
- "XXXXXX.", ".XXXXXX", "X.XXXX.", ".XXXXX.", "...X...", "X.....X", "X.....X", "X.....X",
- "X.....X", "X.....X", "XX....X", "X......", ".XXXXX.", "X.....X", "X.....X", "X.....X",
- "X.....X", "X.....X", "X......", ".XXXXX.", "...X...", "X.....X", ".X...X.", "X..X..X",
- "XXXXXX.", ".XXXXXX", "X......", "......X", "...X...", "X.....X", "..X.X..", "X.X.X.X",
- "X......", "......X", "X......", ".XXXXX.", "....XX.", ".XXXXX.", "...X...", ".X...X.",
- "X......", "......X", ".......", ".......", ".......", ".......", ".......", ".......",
-
- ".......", ".......", ".......", "...XX..", "...X...", "..XX...", ".......", "XXXXXXX",
- ".......", ".......", ".......", "..X....", "...X...", "....X..", ".......", "X.....X",
- "X.....X", "X.....X", "XXXXXXX", "..X....", "...X...", "....X..", "..X....", "X.....X",
- ".XX.XX.", "X.....X", "....XX.", "XX.....", "...X...", ".....XX", ".X.XX.X", "X.....X",
- "...X...", "X.....X", "...X...", "..X....", "...X...", "....X..", ".....X.", "X.....X",
- ".XX.XX.", ".XXXXXX", ".XX....", "..X....", "...X...", "....X..", ".......", "X.....X",
- "X.....X", "......X", "XXXXXXX", "...XX..", "...X...", "..XX...", ".......", "XXXXXXX",
- ".......", ".XXXXX.", ".......", ".......", "...X...", ".......", ".......", "......."
+ ".......", "...X...", "..X.X..", "..X.X..", "...X...", "XX....X", ".XX....", "...X...",
+ ".......", "...X...", "..X.X..", "..X.X..", ".XXXXXX", "XX...X.", "X..X...", "...X...",
+ ".......", "...X...", ".......", "XXXXXXX", "X..X...", "....X..", ".XX....", ".......",
+ ".......", "...X...", ".......", "..X.X..", ".XXXXX.", "...X...", "..X...X", ".......",
+ ".......", "...X...", ".......", "XXXXXXX", "...X..X", "..X....", "X..X.X.", ".......",
+ ".......", ".......", ".......", "..X.X..", "XXXXXX.", ".X...XX", "X...X..", ".......",
+ ".......", "...X...", ".......", "..X.X..", "...X...", "X....XX", ".XXX..X", ".......",
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
+
+ "....X..", "...X...", "...X...", ".......", ".......", ".......", ".......", "......X",
+ "...X...", "....X..", ".X.X.X.", "...X...", ".......", ".......", ".......", ".....X.",
+ "..X....", ".....X.", "..XXX..", "...X...", ".......", ".......", ".......", "....X..",
+ "..X....", ".....X.", "XXXXXXX", ".XXXXX.", ".......", ".XXXXX.", ".......", "...X...",
+ "..X....", ".....X.", "..XXX..", "...X...", ".......", ".......", ".......", "..X....",
+ "...X...", "....X..", ".X..X.X", "...X...", "...XX..", ".......", "...XX..", ".X.....",
+ "....X..", "...X...", "...X...", ".......", "...XX..", ".......", "...XX..", "X......",
+ ".......", ".......", ".......", ".......", "....X..", ".......", ".......", ".......",
+
+ ".XXXXX.", "...X...", ".XXXX..", ".XXXXX.", ".....X.", ".XXXXXX", ".XXXX..", ".XXXXX.",
+ "X....XX", "..XX...", "X....X.", "X.....X", "....XX.", ".X.....", "X....X.", ".....X.",
+ "X...X.X", ".X.X...", ".....X.", "......X", "...X.X.", ".X.....", "X......", ".....X.",
+ "X..X..X", "...X...", "...XX..", "...XXX.", "..X..X.", ".XXXXX.", "XXXXX..", "....X..",
+ "X.X...X", "...X...", "..X....", "......X", ".XXXXXX", "......X", "X....X.", "...X...",
+ "XX....X", "...X...", ".X.....", "X.....X", ".....X.", "......X", "X....X.", "...X...",
+ ".XXXXX.", ".XXXXX.", "XXXXXX.", ".XXXXX.", ".....X.", ".XXXXX.", ".XXXX..", "...X...",
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
+
+ "..XXX..", "..XXX..", ".......", ".......", ".....XX", ".......", "XX.....", "..XXX..",
+ ".X...X.", ".X...X.", ".......", ".......", "...XX..", ".......", "..XX...", ".X...X.",
+ ".X...X.", ".X...X.", "...X...", "...X...", ".XX....", "..XXXX.", "....XX.", ".....X.",
+ "..XXX..", "..XXXX.", "...X...", "...X...", "X......", ".......", "......X", "....X..",
+ ".X...X.", ".....X.", ".......", ".......", ".XX....", "..XXXX.", "....XX.", "...X...",
+ ".X...X.", ".X...X.", "...X...", "...X...", "...XX..", ".......", "..XX...", ".......",
+ "..XXX..", "..XXX..", "...X...", "...X...", ".....XX", ".......", "XX.....", "...X...",
+ ".......", ".......", ".......", "..X....", ".......", ".......", "........", ".......",
+
+ ".XXXXX.", ".XXXXX.", "XXXXXX.", "..XXXX.", "XXXXX..", "XXXXXXX", "XXXXXXX", ".XXXXX.",
+ "X.....X", "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", "XXXXXXX", "XXXXXX.", "X......", "X.....X", "XXXXXX.", "XXXXXX.", "X..XXXX",
+ "X...XXX", "X.....X", "X.....X", "X......", "X.....X", "X......", "X......", "X.....X",
+ "X......", "X.....X", "X.....X", ".X....X", "X....X.", "X......", "X......", "X.....X",
+ ".XXXXXX", "X.....X", "XXXXXX.", "..XXXX.", "XXXXX..", "XXXXXXX", "X......", ".XXXXX.",
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
+
+ "X.....X", "..XXX..", "...XXX.", "X....XX", "X......", "X.....X", "X.....X", ".XXXXX.",
+ "X.....X", "...X...", "....X..", "X...XX.", "X......", "XX...XX", "XX....X", "X.....X",
+ "X.....X", "...X...", "....X..", "X..XX..", "X......", "X.X.X.X", "X.X...X", "X.....X",
+ "XXXXXXX", "...X...", "....X..", "XXX....", "X......", "X..X..X", "X..X..X", "X.....X",
+ "X.....X", "...X...", "....X..", "X..XX..", "X......", "X.....X", "X...X.X", "X.....X",
+ "X.....X", "...X...", "X...X..", "X...XX.", "X......", "X.....X", "X....XX", "X.....X",
+ "X.....X", "..XXX..", ".XXX...", "X....XX", "XXXXXXX", "X.....X", "X.....X", ".XXXXX.",
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
+
+ "XXXXXX.", ".XXXXX.", "XXXXXX.", ".XXXXX.", "XXXXXXX", "X.....X", "X.....X", "X.....X",
+ "X.....X", "X.....X", "X.....X", "X.....X", "...X...", "X.....X", "X.....X", "X.....X",
+ "X.....X", "X.....X", "X.....X", "X......", "...X...", "X.....X", "X.....X", "X.....X",
+ "XXXXXX.", "X.....X", "XXXXXX.", ".XXXXX.", "...X...", "X.....X", "X.....X", "X.....X",
+ "X......", "X.....X", "X...X..", "......X", "...X...", "X.....X", ".X...X.", "X..X..X",
+ "X......", "X...X.X", "X....X.", "X.....X", "...X...", "X.....X", "..X.X..", "X.X.X.X",
+ "X......", ".XXXXX.", "X.....X", ".XXXXX.", "...X...", ".XXXXX.", "...X...", ".X...X.",
+ ".......", "......X", ".......", ".......", ".......", ".......", ".......", ".......",
+
+ "X.....X", "X.....X", "XXXXXXX", "..XXXX.", "X......", "..XXXX.", "...X...", ".......",
+ ".X...X.", ".X...X.", ".....X.", "..X....", ".X.....", ".....X.", "..X.X..", ".......",
+ "..X.X..", "..X.X..", "....X..", "..X....", "..X....", ".....X.", ".X...X.", ".......",
+ "...X...", "...X...", "...X...", "..X....", "...X...", ".....X.", ".......", ".......",
+ "..X.X..", "...X...", "..X....", "..X....", "....X..", ".....X.", ".......", ".......",
+ ".X...X.", "...X...", ".X.....", "..X....", ".....X.", ".....X.", ".......", ".......",
+ "X.....X", "...X...", "XXXXXXX", "..XXXX.", "......X", "..XXXX.", ".......", "XXXXXXX",
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
+
+ "...X...", ".......", ".......", ".......", ".......", ".......", "...XX..", ".......",
+ "....X..", ".......", "X......", ".......", "......X", ".......", "..X....", ".......",
+ ".......", ".XXXX..", "X......", ".XXXXXX", "......X", ".XXXXX.", "..X....", ".XXXXX.",
+ ".......", ".....X.", "XXXXXX.", "X......", ".XXXXXX", "X.....X", ".XXX...", "X.....X",
+ ".......", ".XXXXX.", "X.....X", "X......", "X.....X", "XXXXXXX", "..X....", "X.....X",
+ ".......", "X....X.", "X.....X", "X......", "X.....X", "X......", "..X....", ".XXXXXX",
+ ".......", ".XXXX.X", "XXXXXX.", ".XXXXXX", ".XXXXXX", ".XXXXX.", "..X....", "......X",
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".XXXXX.",
+
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
+ "X......", "...X...", "....X..", "X......", "..XX...", ".......", ".......", ".......",
+ "X......", ".......", ".......", "X....XX", "...X...", ".XX.XX.", ".XXXXX.", ".XXXXX.",
+ "XXXXXX.", "..XX...", "...XX..", "X..XX..", "...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..XX..", "...X...", "X..X..X", "X.....X", "X.....X",
+ "X.....X", "..XXX..", "....X..", "X....XX", "..XXX..", "X..X..X", "X.....X", ".XXXXX.",
+ ".......", ".......", "..XX...", ".......", ".......", ".......", ".......", ".......",
+
+ ".......", ".......", ".......", ".......", ".......", ".......", ".......", ".......",
+ ".......", ".......", ".......", ".......", "...X...", ".......", ".......", ".......",
+ "XXXXXX.", ".XXXXXX", "X.XXXX.", ".XXXXX.", "...X...", "X.....X", "X.....X", "X.....X",
+ "X.....X", "X.....X", "XX....X", "X......", ".XXXXX.", "X.....X", "X.....X", "X.....X",
+ "X.....X", "X.....X", "X......", ".XXXXX.", "...X...", "X.....X", ".X...X.", "X..X..X",
+ "XXXXXX.", ".XXXXXX", "X......", "......X", "...X...", "X.....X", "..X.X..", "X.X.X.X",
+ "X......", "......X", "X......", ".XXXXX.", "....XX.", ".XXXXX.", "...X...", ".X...X.",
+ "X......", "......X", ".......", ".......", ".......", ".......", ".......", ".......",
+
+ ".......", ".......", ".......", "...XX..", "...X...", "..XX...", ".......", "XXXXXXX",
+ ".......", ".......", ".......", "..X....", "...X...", "....X..", ".......", "X.....X",
+ "X.....X", "X.....X", "XXXXXXX", "..X....", "...X...", "....X..", "..X....", "X.....X",
+ ".XX.XX.", "X.....X", "....XX.", "XX.....", "...X...", ".....XX", ".X.XX.X", "X.....X",
+ "...X...", "X.....X", "...X...", "..X....", "...X...", "....X..", ".....X.", "X.....X",
+ ".XX.XX.", ".XXXXXX", ".XX....", "..X....", "...X...", "....X..", ".......", "X.....X",
+ "X.....X", "......X", "XXXXXXX", "...XX..", "...X...", "..XX...", ".......", "XXXXXXX",
+ ".......", ".XXXXX.", ".......", ".......", "...X...", ".......", ".......", "......."
};
+
- public static void main(final String[] args) {
+ public static void fontConverter(final String[] font) {
final int matrix_width = 8;
final int matrix_height = 12;
@@ -171,12 +172,16 @@ public class FontGenerator7Pixel {
}
}
String s = Long.toHexString(b).toUpperCase();
- while (s.length() < 16) s = "0" + s;
+ while (s.length() < 14) s = "0" + s;
System.out.print("0x" + s + "L,");
}
System.out.println();
}
}
+
+ public static void main(final String[] args) {
+ fontConverter(font);
+ }
}
diff --git a/source/net/yacy/visualization/HexGridPlotter.java b/source/net/yacy/visualization/HexGridPlotter.java
index 578482d57..69f846a9c 100644
--- a/source/net/yacy/visualization/HexGridPlotter.java
+++ b/source/net/yacy/visualization/HexGridPlotter.java
@@ -100,13 +100,13 @@ public class HexGridPlotter extends RasterPlotter {
CircleTool.circle(this, projectionX(x, y), projectionY(y), radius, fromArc, toArc);
}
- public void gridPrint(final int x, final int y, final int radius, final String messageHigh, final String messageLow, final int align, int intensity) {
- if (messageHigh != null && messageHigh.length() > 0) PrintTool.print7(this, projectionX(x, y) - align * radius, projectionY(y) - (cellwidth2 >> 2) - ((align == 0) ? radius : 0), 0, messageHigh, align, intensity);
- if (messageLow != null && messageLow.length() > 0) PrintTool.print7(this, projectionX(x, y) - align * radius, projectionY(y) + (cellwidth2 >> 2) + 8 + ((align == 0) ? radius : 0), 0, messageLow, align, intensity);
+ public void gridPrint(final int x, final int y, final int radius, final String messageHigh, final String messageLow, final int align, int intensity, boolean bold, boolean inverse) {
+ if (messageHigh != null && messageHigh.length() > 0) PrintTool.print6(this, projectionX(x, y) - align * radius, projectionY(y) - (cellwidth2 >> 2) - ((align == 0) ? radius : 0), 0, messageHigh, align, intensity, bold, inverse);
+ if (messageLow != null && messageLow.length() > 0) PrintTool.print6(this, projectionX(x, y) - align * radius, projectionY(y) + (cellwidth2 >> 2) + 8 + ((align == 0) ? radius : 0), 0, messageLow, align, intensity, bold, inverse);
}
- public void gridPrint315(final int x, final int y, final int radius, final String message315, int intensity) {
- if (message315 != null && message315.length() > 0) PrintTool.print7(this, projectionX(x, y) + (radius >> 1), projectionY(y) + (cellwidth2 >> 2) + 8, 315, message315, -1, intensity);
+ public void gridPrint315(final int x, final int y, final int radius, final String message315, int intensity, boolean bold, boolean inverse) {
+ if (message315 != null && message315.length() > 0) PrintTool.print6(this, projectionX(x, y) + (radius >> 1), projectionY(y) + (cellwidth2 >> 2) + 8, 315, message315, -1, intensity, bold, inverse);
}
public void gridLine(
@@ -150,37 +150,37 @@ public class HexGridPlotter extends RasterPlotter {
picture.drawGrid(gridcolor);
long dotcolori = Long.parseLong(dotcolor, 16);
picture.setColor(dotcolori);
- picture.gridDot(0, 0, 5, true, 100); picture.gridPrint(0, 0, 5, "", "0,0", -1, 100);
+ picture.gridDot(0, 0, 5, true, 100); picture.gridPrint(0, 0, 5, "", "0,0", -1, 100, false, false);
for (int i = 1; i < picture.gridHeight() -1; i++) {
picture.setColor(dotcolori);picture.gridDot(0, i, 3, true, 100);
- picture.setColor(dotcolori);picture.gridPrint(0, i, 3, "", "0," + i, -1, 100);
+ picture.setColor(dotcolori);picture.gridPrint(0, i, 3, "", "0," + i, -1, 100, false, false);
}
for (int i = 1; i < picture.gridWidth() -1; i++) {
picture.setColor(dotcolori);picture.gridDot(i, 0, 3, true, 100);
- picture.setColor(dotcolori);picture.gridPrint315(i, 0, 3, i + ",0", 100);
+ picture.setColor(dotcolori);picture.gridPrint315(i, 0, 3, i + ",0", 100, false, false);
}
picture.setColor(dotcolori);
- picture.gridDot(0, picture.gheight - 1, 5, true, 100); picture.gridPrint(0, picture.gheight - 1, 5, "0, grid.gheight - 1", "", -1, 100);
- picture.gridDot(picture.gwidth - 1, 0, 5, true, 100); picture.gridPrint(picture.gwidth - 1, 0, 5, "", "grid.gwidth - 1, 0", -1, 100);
- picture.gridDot(picture.gwidth - 1, picture.gheight - 1, 5, true, 100); picture.gridPrint(picture.gwidth - 1, picture.gheight - 1, 5, "grid.gwidth - 1, grid.gheight - 1", "", 1, 100);
+ picture.gridDot(0, picture.gheight - 1, 5, true, 100); picture.gridPrint(0, picture.gheight - 1, 5, "0, grid.gheight - 1", "", -1, 100, false, false);
+ picture.gridDot(picture.gwidth - 1, 0, 5, true, 100); picture.gridPrint(picture.gwidth - 1, 0, 5, "", "grid.gwidth - 1, 0", -1, 100, false, false);
+ picture.gridDot(picture.gwidth - 1, picture.gheight - 1, 5, true, 100); picture.gridPrint(picture.gwidth - 1, picture.gheight - 1, 5, "grid.gwidth - 1, grid.gheight - 1", "", 1, 100, false, false);
picture.gridDot(3, 3, 20, 0, 360);
picture.gridDot(7, 5, 5, 0, 360);
- picture.gridPrint(7, 5, 8, "COMMUNICATION TEST", "TRANSFER 64KBIT", -1, 100);
+ picture.gridPrint(7, 5, 8, "COMMUNICATION TEST", "TRANSFER 64KBIT", -1, 100, false, false);
picture.gridDot(14, 8, 5, true, 100);
picture.gridLine(7, 5, 14, 8);
- picture.gridPrint315(14, 8, 8, "NULL", 100);
+ picture.gridPrint315(14, 8, 8, "NULL", 100, false, false);
picture.gridDot(4, 28, 5, 0, 360);
- picture.gridPrint(4, 28, 8, "REVERSE", "ESREVER", -1, 100);
+ picture.gridPrint(4, 28, 8, "REVERSE", "ESREVER", -1, 100, false, false);
picture.gridLine(4, 28, 14, 8);
picture.gridDot(picture.gwidth - 1, picture.gheight - 4, 5, 0, 360);
- picture.gridPrint(picture.gwidth - 1, picture.gheight - 4, 5, "INTERNET", "END", 1, 100);
+ picture.gridPrint(picture.gwidth - 1, picture.gheight - 4, 5, "INTERNET", "END", 1, 100, false, false);
picture.gridDot(picture.gwidth / 2, picture.gheight / 2, 5, 0, 360);
- picture.gridPrint(picture.gwidth / 2, picture.gheight / 2, 5, "HOME PEER", "ANON_23", 0, 100);
+ picture.gridPrint(picture.gwidth / 2, picture.gheight / 2, 5, "HOME PEER", "ANON_23", 0, 100, false, false);
//grid.gridLine(grid.gwidth - 2, grid.gheight - 2, grid.gwidth / 2, grid.gheight / 2);
picture.gridLine(picture.gwidth / 2, picture.gheight / 2, picture.gwidth - 1, picture.gheight - 4);
return picture;
diff --git a/source/net/yacy/visualization/PrintTool.java b/source/net/yacy/visualization/PrintTool.java
index 866b2e0cf..12d3bcd9a 100644
--- a/source/net/yacy/visualization/PrintTool.java
+++ b/source/net/yacy/visualization/PrintTool.java
@@ -39,21 +39,51 @@ public class PrintTool {
0x0300C03BEFAF83L,0x0030000300C030L,0x0030000302C0E0L,0x0300C032FFE32FL,0x00300C0300C030L,0x0000000ECEEF33L,0x0000000FCE2F03L,0x0000000FCE2CFCL,
0x0000FF30BFF300L,0x00003FF833FC03L,0x00000B0380C030L,0x0000000BCBAFACL,0x00303F0300C030L,0x000000303E2CFCL,0x00000038BBB8B8L,0x000000333EECECL,
0x0000000EC2E0ECL,0x0000000EC2E030L,0x0000000FF2E3FCL,0x000F0B8B80B80FL,0x00300C0300C030L,0x03C0B80B8B83C0L,0x0000B83BB0B800L,0x03FFC0F03C0FFFL
-};
+ };
+
+ private static long[] font6 = new long[] {
+ 0x000000000000L,0x008208200200L,0x012480000000L,0x012FD24BF480L,0x008FA8F8AF88L,0x031C842138C0L,0x008508562740L,0x004200000000L,
+ 0x004208208100L,0x008104104200L,0x0002847C4280L,0x0001047C4100L,0x000000008210L,0x0000007C0000L,0x00000000C300L,0x000084210800L,
+ 0x01E8E5A71780L,0x00C5041047C0L,0x01E8417A0FC0L,0x01E846061780L,0x00431493F100L,0x03F83E061780L,0x01E83E861780L,0x03F042108200L,
+ 0x01E85E861780L,0x01E8617C1780L,0x000008000200L,0x000200008210L,0x000108408100L,0x00001F01F000L,0x000204084200L,0x01E842100100L,
+ 0x01E96BBE0780L,0x01E861FE1840L,0x03E87E861F80L,0x01E860821780L,0x03C8A1862F00L,0x03F83E820FC0L,0x03F83E820800L,0x01E8609E1780L,
+ 0x02187F861840L,0x01F1041047C0L,0x001041861780L,0x022938922840L,0x020820820FC0L,0x021CED861840L,0x021C69963840L,0x01E861861780L,
+ 0x03E861FA0800L,0x01E861A65780L,0x03E861FA2840L,0x01E81E061780L,0x01F104104100L,0x021861861780L,0x021861852300L,0x02186186D480L,
+ 0x02148C312840L,0x01144A104100L,0x03F084210FC0L,0x0071041041C0L,0x000810204080L,0x038208208E00L,0x008522000000L,0x00000000003FL,
+ 0x008100000000L,0x0007027A2780L,0x01041E451780L,0x000390410380L,0x00209E8A2780L,0x000722F20780L,0x00620C208200L,0x0007A289E09CL,
+ 0x02083C8A2880L,0x008018208700L,0x00200208248CL,0x010518614480L,0x008208208180L,0x000D2AAAAA80L,0x000F228A2880L,0x0007228A2700L,
+ 0x000F228BC820L,0x0007A289E083L,0x000390410400L,0x000720702F00L,0x008708208100L,0x0008A28A2700L,0x0008A2514200L,0x0008AAAAA500L,
+ 0x000894214880L,0x0008A289E09CL,0x000F84210F80L,0x0071381041C0L,0x004104104100L,0x038207208E00L,0x000294000000L,0x03F86186187FL
+ };
+
+ private static long[] font6_bold = new long[] {
+ 0x000000000000L,0x00C30C30C00CL,0x033CC0000000L,0x01A6BF6BF69AL,0x00C7E0781F8CL,0x031CC6318CE3L,0x01CD9C637D9FL,0x00C30C000000L,
+ 0x006318618306L,0x018306186318L,0x000CCCFCCCC0L,0x00030CFCC300L,0x00000000C318L,0x000000FC0000L,0x00000000C300L,0x0000C6318C00L,
+ 0x01ECF7EF3CDEL,0x00C31C30C33FL,0x01ECC3198C3FL,0x01ECC3383CDEL,0x00639EDBF186L,0x03FC3E0C3CDEL,0x01ECF0FB3CDEL,0x03FCC630C30CL,
+ 0x01ECF37B3CDEL,0x01ECF37C3CDEL,0x00000C30030CL,0x00000C300318L,0x003198C18183L,0x00003F03F000L,0x0306060C6630L,0x01ECC318C00CL,
+ 0x01ECF7DF0C5EL,0x00C7B3FF3CF3L,0x03ECF3FB3CFEL,0x01ECF0C30CDEL,0x03CDB3CF3DBCL,0x03FC30F30C3FL,0x03FC30F30C30L,0x01ECF0DF3CDEL,
+ 0x033CF3FF3CF3L,0x01E30C30C31EL,0x00F186186D9CL,0x033DBCC3CDB3L,0x030C30C30C3FL,0x031EFFD71C71L,0x033EFFFF7CF3L,0x01ECF3CF3CDEL,
+ 0x03ECF3FB0C30L,0x01ECF3CF3787L,0x03ECF3FBCDB3L,0x01ECF0783CDEL,0x03F30C30C30CL,0x033CF3CF3CDEL,0x033CF3CF378CL,0x031C71C75EF1L,
+ 0x033CDE31ECF3L,0x033CDE30C30CL,0x03F0C6318C3FL,0x01E61861861EL,0x000C183060C0L,0x01E18618619EL,0x00C7B3000000L,0x00000000003FL,
+ 0x018300000000L,0x00001E0DFCDFL,0x000C30FB3CFEL,0x00001EC30C1EL,0x0000C37F3CDFL,0x00001ECFFC1EL,0x0001CC7CC30CL,0x00001FCDF0FEL,
+ 0x000C30FB3CF3L,0x00C01C30C31EL,0x0060061861BCL,0x000C30DBCDB3L,0x00070C30C31EL,0x000036FFFD71L,0x00003ECF3CF3L,0x00001ECF3CDEL,
+ 0x00003ECFEC30L,0x00001FCDF0C3L,0x00003ECF0C30L,0x00001FC1E0FEL,0x00033F30C307L,0x000033CF3CDFL,0x000033CF378CL,0x000031D7F7DBL,
+ 0x00003378C7B3L,0x000033CDF1BCL,0x00003F18C63FL,0x00730CE0C307L,0x00C30C30C30CL,0x03830C1CC338L,0x000010B42000L,0x03F86186187FL
+ };
private static long[] font7 = new long[] {
- 0x0000000000000000L,0x0010204081000400L,0x0028500000000000L,0x002853F94FE50A00L,0x0018FE63E1BF8400L,0x0062C8208208E180L,0x0061218119511C80L,0x0010200000000000L,
- 0x0008208102020200L,0x0010101020410400L,0x0010A8E7F38A8400L,0x00002043E1020000L,0x0000000000030604L,0x00000003E0000000L,0x0000000000030600L,0x0002082082082000L,
- 0x007D0E2C9A385F00L,0x0010614081021F00L,0x0038881041041F00L,0x00388810C0488E00L,0x0004185127E08100L,0x007E8103E0205F00L,0x00388903C4488E00L,0x007C081041020400L,
- 0x00388911C4488E00L,0x00388911E0488E00L,0x00000060C0030600L,0x00000060C0030604L,0x0006318406030180L,0x000000F003C00000L,0x00C0603010C63000L,0x0038881041000400L,
- 0x007D063C98F01F80L,0x007D060FF8306080L,0x00FD060FE8307F00L,0x003C860408084F00L,0x00F90A0C1830BE00L,0x00FF0207E8103F80L,0x00FF0207E8102000L,0x007D0204F8305F00L,
- 0x0083060FF8306080L,0x0038204081020E00L,0x001C102040911C00L,0x00871A670991A180L,0x0081020408103F80L,0x00838EAC98306080L,0x0083868C98B0E080L,0x007D060C18305F00L,
- 0x00FD060FE8102000L,0x007D060C18315F01L,0x00FD060FE890A080L,0x007D0603E0305F00L,0x00FE204081020400L,0x0083060C18305F00L,0x0083060C14450400L,0x0083060C19355100L,
- 0x008288A08288A080L,0x008288A081020400L,0x00FE082082083F80L,0x003C408102040F00L,0x0080808080808080L,0x003C081020408F00L,0x0010511000000000L,0x0000000000003F80L,
- 0x0010100000000000L,0x000001E027D09E80L,0x00810207E8307F00L,0x000001FC08101F80L,0x0002040BF8305F80L,0x000001F41FF01F00L,0x0018408382040800L,0x000001F4182FC0BEL,
- 0x00810207E8306080L,0x0000200181020E00L,0x00001000C0810218L,0x0081021CCE132180L,0x0030204081020E00L,0x000001B499326480L,0x000001F418306080L,0x000001F418305F00L,
- 0x000003F4183FA040L,0x000001FC182FC081L,0x000002F618102000L,0x000001F407C05F00L,0x00102043E1020300L,0x0000020C18305F00L,0x0000020C14450400L,0x0000020C19355100L,
- 0x0000020B610DA080L,0x0000020C182FC0BEL,0x000003F8610C3F80L,0x0018408602040600L,0x0010204081020408L,0x0030102030810C00L,0x00000082D0400000L,0x00FF060C18307F80L
+ 0x00000000000000L,0x10204081000400L,0x28500000000000L,0x2853F94FE50A00L,0x10FE43E13F8400L,0xC388208208E180L,0x61218119511C80L,0x10200000000000L,
+ 0x08208102020200L,0x10101020410400L,0x10A8E7F3894400L,0x002043E1020000L,0x00000000030604L,0x000003E0000000L,0x00000000030600L,0x02082082082000L,
+ 0x7D0E2C9A385F00L,0x10614081021F00L,0x790810C2083F00L,0x7D0408E0305F00L,0x04185127E08100L,0x7E8103E0205F00L,0x790A07C8509E00L,0x7C081041020400L,
+ 0x388911C4488E00L,0x388911E0488E00L,0x00004080020400L,0x00004080020410L,0x06318406030180L,0x0000F003C00000L,0xC0603010C63000L,0x38881041000400L,
+ 0x7D063C98F01F80L,0x7D060FF8306080L,0xFD060FE8307F00L,0x3C860408084F00L,0xF90A0C1830BE00L,0xFF0207E8103F80L,0xFF0207E8102000L,0x7D0204F8305F00L,
+ 0x83060FF8306080L,0x38204081020E00L,0x1C102040911C00L,0x871A670991A180L,0x81020408103F80L,0x838EAC98306080L,0x83868C98B0E080L,0x7D060C18305F00L,
+ 0xFD060FE8102000L,0x7D060C18315F01L,0xFD060FE890A080L,0x7D0603E0305F00L,0xFE204081020400L,0x83060C18305F00L,0x83060C14450400L,0x83060C19355100L,
+ 0x8288A08288A080L,0x8288A081020400L,0xFE082082083F80L,0x3C408102040F00L,0x80808080808080L,0x3C081020408F00L,0x10511000000000L,0x00000000003F80L,
+ 0x10100000000000L,0x0001E027D09E80L,0x010207E8307F00L,0x0001FC08101F80L,0x00040BF8305F80L,0x0001F41FF01F00L,0x18408382040800L,0x0001F4182FC0BEL,
+ 0x010207E8306080L,0x00200181020E00L,0x001000C0810218L,0x01021CCE132180L,0x00604081020E00L,0x0001B499326480L,0x0001F418306080L,0x0001F418305F00L,
+ 0x0003F4183FA040L,0x0001FC182FC081L,0x0002F618102000L,0x0001F407C05F00L,0x002043E1020300L,0x00020C18305F00L,0x00020C14450400L,0x00020C19355100L,
+ 0x00020B610DA080L,0x00020C182FC0BEL,0x0003F8610C3F80L,0x18408602040600L,0x10204081020408L,0x30102030810C00L,0x000082D0400000L,0xFF060C18307F80L
};
private static void print5(final RasterPlotter matrix, int x, int y, final int angle, final char letter, int intensity) {
@@ -62,9 +92,7 @@ public class PrintTool {
long character = font5[index];
long bits;
long c;
- int i2 = intensity / 2;
int i3 = intensity / 3;
- int i5 = intensity / 5;
for (int row = 0; row < 5; row++) {
bits = character & 0x3FFL; // 10 bits per row
character = character >> 10; // next row
@@ -87,6 +115,8 @@ public class PrintTool {
x--;
}
if (angle == 315) {
+ int i2 = intensity / 2;
+ int i5 = intensity / 5;
for (int col = 0; col < 5; col++) {
c = bits & 3L;
if (c == 3) { matrix.plot(x + 5 - col, y + 5 - col, intensity); matrix.plot(x + 6 - col, y + 5 - col, i2); matrix.plot(x + 5 - col, y + 6 - col, i2); }
@@ -99,34 +129,49 @@ public class PrintTool {
}
}
- private static void print7(final RasterPlotter matrix, int x, int y, final int angle, final char letter, final int intensity) {
+ private static void print6(final RasterPlotter matrix, int x, int y, final int angle, final char letter, final int intensity, boolean bold, boolean invers) {
final int index = letter - 0x20;
- if (index < 0 || index >= font7.length || intensity <= 0) return;
+ if (index < 0 || index >= font6.length || intensity <= 0) return;
- long character = font7[index];
- final int i2 = intensity / 2;
+ long character = bold ? font6_bold[index] : font6[index];
+ long p = invers ? 0L : 1L;
- for (int row = 0; row < 8; row++) {
- long bits = character & 0x7FL; // 7 bits per row
- character >>= 7; // next row
+ if (invers) {
+ if (angle == 0) {
+ for (int col = 0; col < 7; col++) matrix.plot(x + col, y + 1, intensity); // lower line
+ for (int row = 0; row < 8; row++) matrix.plot(x - 1, y + 1 - row, intensity); // left line
+ } else if (angle == 90) {
+ for (int col = 0; col < 7; col++) matrix.plot(x + 1, y + col, intensity); // right line
+ for (int row = 0; row < 8; row++) matrix.plot(x, y - 1, 50); // lower line
+ } else if (angle == 315) {
+ for (int col = 0; col < 7; col++) matrix.plot(x + col - 1, y + col, intensity);
+ for (int row = 0; row < 8; row++) matrix.plot(x + row - 1, y - row - 1, 50);
+ }
+ }
+ for (int row = 0; row < 7; row++) { // we have 7 rows!
+ long bits = character & 0x3FL; // 6 bits per row; first row is lowest row
+ character >>= 6; // next row
if (angle == 0) {
- for (int col = 0; col < 7; col++) {
- if ((bits & 1L) != 0L) matrix.plot(x + 7 - col, y, intensity);
+ for (int col = 0; col < 6; col++) {
+ if ((bits & 1L) == p) matrix.plot(x + 5 - col, y, intensity);
bits >>= 1;
}
- y--;
+ if (invers) matrix.plot(x + 6, y, intensity); // right line
+ y--; // next row is up
} else if (angle == 90) {
- for (int col = 0; col < 7; col++) {
- if ((bits & 1L) != 0L) matrix.plot(x, y - 7 + col, intensity);
+ for (int col = 0; col < 6; col++) {
+ if ((bits & 1L) == p) matrix.plot(x, y - 5 + col, intensity);
bits >>= 1;
}
- x--;
+ if (invers) matrix.plot(x, y - 6, intensity); // top line
+ x--; // next row goes to the left
} else if (angle == 315) {
- for (int col = 0; col < 7; col++) {
- if ((bits & 1L) != 0L) {
- final int px = x + 7 - col;
- final int py = y + 7 - col;
+ final int i2 = intensity / 2;
+ for (int col = 0; col < 6; col++) {
+ if ((bits & 1L) == p) {
+ final int px = x + 5 - col;
+ final int py = y + 5 - col;
matrix.plot(px, py, intensity);
if (i2 > 0) {
matrix.plot(px + 1, py, i2);
@@ -135,8 +180,8 @@ public class PrintTool {
}
bits >>= 1;
}
- x++;
- y--;
+ if (invers) matrix.plot(x + 6, y + 6, intensity);
+ x++; y--; // next row goes up and right
}
}
}
@@ -167,26 +212,25 @@ public class PrintTool {
}
}
- public static void print7(final RasterPlotter matrix, final int x, final int y, final int angle, final String message, final int align, final int intensity) {
+ public static void print6(final RasterPlotter matrix, final int x, final int y, final int angle, final String message, final int align, final int intensity, boolean bold, boolean invers) {
if (message == null || message.isEmpty() || intensity <= 0) return;
- final int size = 8;
- final int halfStep = size / 2;
+ final int size = 7; // 6+1, we make 1 pixel space between each character
int xx = x, yy = y;
if (angle == 0) {
- xx = (align == -1) ? x : (align == 1) ? x - size * message.length() : x - halfStep * message.length();
+ xx = (align == -1) ? x : (align == 1) ? x - size * message.length() : x - size * message.length() / 2;
yy = y;
} else if (angle == 90) {
xx = x;
- yy = (align == -1) ? y : (align == 1) ? y + size * message.length() : y + halfStep * message.length();
+ yy = (align == -1) ? y : (align == 1) ? y + size * message.length() : y + size * message.length() / 2;
} else if (angle == 315) {
- xx = (align == -1) ? x : (align == 1) ? x - size * message.length() : x - halfStep * message.length();
- yy = (align == -1) ? y : (align == 1) ? y - size * message.length() : y - halfStep * message.length();
+ xx = (align == -1) ? x : (align == 1) ? x - size * message.length() : x - size * message.length() / 2;
+ yy = (align == -1) ? y : (align == 1) ? y - size * message.length() : y - size * message.length() / 2;
}
for (int i = 0; i < message.length(); i++) {
- print7(matrix, xx, yy, angle, message.charAt(i), intensity);
+ print6(matrix, xx, yy, angle, message.charAt(i), intensity, bold, invers);
if (angle == 0) xx += size;
else if (angle == 90) yy -= size;
else if (angle == 315) {xx += size; yy += size;}
@@ -218,7 +262,7 @@ public class PrintTool {
print5(matrix, xp, yp, 0, message, -1, intensity);
}
- public static void arcPrint7(final RasterPlotter matrix, final int cx, final int cy, final int radius, final double angle, final String message, final int intensity) {
+ public static void arcPrint6(final RasterPlotter matrix, final int cx, final int cy, final int radius, final double angle, final String message, final int intensity, boolean bold, boolean invers) {
final int x = cx + (int) ((radius + 1) * Math.cos(RasterPlotter.PI180 * angle));
final int y = cy - (int) ((radius + 1) * Math.sin(RasterPlotter.PI180 * angle));
int yp = y + 4;
@@ -229,7 +273,7 @@ public class PrintTool {
int xp = x - 4 * message.length();
if ((angle > (90 + arcDist)) && (angle < (270 - arcDist))) xp = x - 8 * message.length();
if ((angle < (90 - arcDist)) || (angle > (270 + arcDist))) xp = x;
- print7(matrix, xp, yp, 0, message, -1, intensity);
+ print6(matrix, xp, yp, 0, message, -1, intensity, bold, invers);
}
@@ -239,6 +283,8 @@ public class PrintTool {
final File target = determineTarget(args);
final RasterPlotter canvas = new RasterPlotter(360, 260, RasterPlotter.DrawMode.MODE_REPLACE, 0x000010);
+ boolean bold = true;
+ boolean invers = true;
canvas.setColor(0x00FFD0);
print5(canvas, 12, 60, 0, "print5 left", -1, 90);
canvas.setColor(0xFFAA40);
@@ -251,13 +297,13 @@ public class PrintTool {
arcPrint5(canvas, 260, 70, 40, 210, "arcPrint5", 90);
canvas.setColor(0xFFFFFF);
- print7(canvas, 12, 120, 0, "print7 demo", -1, 100);
+ print6(canvas, 12, 120, 0, "print6 demo", -1, 100, bold, invers);
canvas.setColor(0x00CCFF);
- print7(canvas, 340, 180, 0, "print7 right", 1, 90);
+ print6(canvas, 348, 180, 0, "print6 right", 1, 90, bold, invers);
canvas.setColor(0xFFCC00);
- print7(canvas, 330, 240, 90, "vertical7", -1, 90);
+ print6(canvas, 330, 240, 90, "vertical6", -1, 90, bold, invers);
canvas.setColor(0xFF66FF);
- print7(canvas, 140, 210, 315, "diagonal7", -1, 90);
+ print6(canvas, 140, 120, 315, "diagonal6", -1, 90, bold, invers);
try {
if (target.getParentFile() != null) target.getParentFile().mkdirs();