Derzeit ist es noch recht schwierig, Bildschirmabzüge von der Anzeige einer Bangle.js zu erstellen und auf einen damit verbundenen PC hochzuladen.
Für Bildschirmabzüge in den LCD-Modi 120x120 und 80x80 kann evtl. folgendes Skript Abhilfe bieten, welches zusätzlich zum eigentlichen Programm auf die Uhr hochzuladen ist:
const HexDigits = '0123456789ABCDEF';
function dec2hex (Value) {
return HexDigits[(Value & 0xF0) >> 4] + HexDigits[Value & 0x0F];
}
function dumpScreen () {
const Width = g.getWidth();
const Height = g.getHeight();
g.flip();
for (let y = 0; y < Height; y++) {
let PixelRow = '';
for (let x = 0; x < Width; x++) {
PixelRow += dec2hex(g.getPixel(x,y));
}
print(PixelRow);
}
g.flip();
}
Das Skript liest den Bildschirmpuffer Pixel für Pixel aus und überträgt das Ergebnis zeilenweise an einen mit der Uhr verbundenen PC - z.B. in die Espruino-IDE.
Die Ausgabe kann nun mit der Maus selektiert, in die Zwischenablage kopiert und von dort in das untenstehende Formular eingesetzt werden, wo es auf Knopfdruck in eine PNG-Datei umgewandelt wird.
Die Funktion dumpScreen
aus dem genannten Skript darf auf keinen Fall sofort nach der Übertragung des Skriptes aufgerufen werden, da die IDE von der Uhr zunächst eine Bestätigung in Form eines Prompts erwartet - oder den Vorgang mit einer Fehlermeldung abbricht.
Stattdessen kann man die Funktion z.B. auf Knopfdruck oder mit einer kurzen Verzögerung starten:
setTimeout(dumpScreen,1000);
setWatch(dumpScreen, BTN2, {edge:"falling", debounce:50, repeat:true});
Auch andere Varianten (z.B. nach Erreichen einer bestimmten Bedingung) sind auf diese Weise möglich.
Display Content: | |
Status: | enter Display Content and press "Convert" |
Result: |
|
as Data URI: | |
File Name: | |
(as PNG image) |
Der Emulator unterstützt derzeit keine Bildschirmabzüge von der emulierten Bangle.js-Anzeige, eine solche Funktion kann jedoch (temporär) wie folgt nachgerüstet werden:
$('<a id="ScreenshotButton" class="icon-save lrg"></a>').on('click', () => {
window.open('','Bangle.js Emulator Screenshot').document.write('<a href="' + $('#gfxcanvas')[0].toDataURL().replace(/^data:image\/png/,'data:application/octet-stream') + '" download="Bangle-Screenshot.png">click to download</a>')
}).insertAfter('#icon-clearScreen');
In der linken Leiste erscheint daraufhin ein neuer Button mit einem Floppy-Disc-Symbol. Durch Anklicken wird ein neuer Browser-Tab mit einem Download-Link geöffnet - ein Klicken auf diesen Link lädt nun den aktuellen Vorschau-Inhalt als PNG-Bild auf den Rechner herunter.