diff options
| author | Michael Peter Christen <mc@yacy.net> | 2025-09-25 23:55:05 +0200 |
|---|---|---|
| committer | Michael Peter Christen <mc@yacy.net> | 2025-09-25 23:55:05 +0200 |
| commit | 61fd46c006b128b67f1700d2d63a1a3aaeb7f30f (patch) | |
| tree | 069ef66e7753df800ddd9a420ca0bba6b1aa3e38 | |
| parent | 3560b584502da7d58eb43110d446637c308f8741 (diff) | |
Enhanced fonts: new 6-Pixel font
like the greatest home computers in the 80s
| -rw-r--r-- | source/net/yacy/htroot/AccessPicture_p.java | 14 | ||||
| -rw-r--r-- | source/net/yacy/htroot/WebStructurePicture_p.java | 10 | ||||
| -rw-r--r-- | source/net/yacy/peers/graphics/NetworkGraph.java | 10 | ||||
| -rw-r--r-- | source/net/yacy/visualization/ChartPlotter.java | 14 | ||||
| -rw-r--r-- | source/net/yacy/visualization/FontGenerator6Pixel.java | 275 | ||||
| -rw-r--r-- | source/net/yacy/visualization/FontGenerator7Pixel.java | 223 | ||||
| -rw-r--r-- | source/net/yacy/visualization/HexGridPlotter.java | 32 | ||||
| -rw-r--r-- | source/net/yacy/visualization/PrintTool.java | 142 |
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(); |
