Meine Güte! Ich bat um Hilfe, aber es wurde eine Hinweisbox angezeigt, die nicht zu bitten bat, um Hilfe zu bitten ... hehe also, drei Tage später habe ich es selbst gemacht, also dachte ich, ich hätte ein paar zusätzliche Tipps.
Das Ziehen der Datei in Java ist ziemlich einfach.
Um die Glyphen zu importieren verwenden (Pseudo - Code) ,
BufferedInputStream bf = new BufferedInputStream(importGBKFileStream); byte glyphline[] = new byte[glyphBitWith/8]; // 64 for GBK 64 while (bf.available() > 0) { bf.read(glyphline); for(int i = 0 ; i < glyphline.length ; i++){ String s = ("0000000" + Integer.toBinaryString(0xFF & glyphline[i])).replaceAll(".*(.)$", "$1"); ... etc
Anzeige der Glyphen auf der EPD
Nachdem Sie ein wenig herumgespielt haben, müssen Sie für jedes Zeichen zwei Bytes an die EPD senden. Diese Zeichen beginnen bei (oberes Byte) 0x81, (unteres Byte) 0x40.
Dies ist eine gute Referenz, https://en.wikipedia.org/wiki/GBK, um zu sehen, wie der GBK-Datensatz aufgebaut ist. Eine weitere hilfreiche Referenz sind diese https://r12a.github.io/apps/encodings/
Erstellen einer benutzerdefinierten Schriftart (Pseudocode)
Laden Sie eine .ttf-Datei herunter und öffnen Sie sie in Java
Font font = Font.createFont(Font.TRUETYPE_FONT, inttf); font = font.deriveFont((float) 64); // for all characters in ASCII table text = Character.toString(chara); img = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_BYTE_BINARY); g2d = img.createGraphics(); g2d.setColor(Color.BLACK); g2d.fillRect(0, 0, imageWidth, imageHeight); g2d.setColor(Color.WHITE); g2d.setFont(font); fm = g2d.getFontMetrics(); // for all ascii values 0 - 256, xpos g2d.drawString(text, 0, fm.getAscent()); // use the character and the derrived with from the FontMetrics to // create a map for spacing the text manually characterWidthLogger(chara, textWidth); // should have the image as a dataByte buffer WritableRaster raster = img.getRaster(); DataBufferByte data = (DataBufferByte) raster.getDataBuffer(); // output the data to a file or screen displayByteArray(data ,imageHeight, imageWidth);
Der characterWidthLogger () ist wichtig. Auf dem Mikro, das die EPD steuert, verwende ich die Zeichenbreite-Karte, um den Abstand als festzulegen. Aus einem "Text" -Befehl werden daher 4 separate Befehle ((x0, y0, "T"), (x0 + Breite 'T ", y0" e ") usw.), und jedes Zeichen wird dann in das chinesische Format konvertiert Wo Sie die Glyphen in Ihre GBK-Dateien einfügen, liegt ganz bei Ihnen. Die epd-Datei erlaubt nur die drei Dateien GBK32, GBK48 und GBK64 0x81, 0xD4.
Ich hoffe es hilft
Hayden