imgclock: Fix hour alignment for single digits Fix hour alignment for single digits

Scaling for background images <240px wide
pull/408/head
Gordon Williams 2020-05-08 14:59:15 +01:00
parent 31a58a15a4
commit 59fab34035
3 changed files with 15 additions and 7 deletions

View File

@ -168,7 +168,7 @@
"name": "Image background clock",
"shortName":"Image Clock",
"icon": "app.png",
"version":"0.03",
"version":"0.04",
"description": "A clock with an image as a background",
"tags": "clock",
"type" : "clock",

View File

@ -1,3 +1,5 @@
0.01: New App!
0.02: Add configurable color - and 'this is fine.'
0.03: Add {msb:true} so that on new builds, color is correct for 16 bit
0.04: Fix hour alignment for single digits
Scaling for background images <240px wide

View File

@ -7,6 +7,11 @@ var inf = require("Storage").readJSON("imgclock.face.json");
var img = require("Storage").read("imgclock.face.img");
var IX = inf.x, IY = inf.y, IBPP = inf.bpp;
var IW = 110, IH = 45, OY = 24;
var bgwidth = img.charCodeAt(0);
var bgoptions;
if (bgwidth<240)
bgoptions = { scale : 240/bgwidth };
require("Font7x11Numeric7Seg").add(Graphics);
var cg = Graphics.createArrayBuffer(IW,IH,IBPP,{msb:true});
var cgimg = {width:IW,height:IH,bpp:IBPP,buffer:cg.buffer};
@ -16,7 +21,7 @@ var locale = require("locale");
var bgimg = require("Storage").read("imgclock.face.bg");
// if it doesn't exist, make it
function createBgImg() {
cg.drawImage(img,-IX,-IY);
cg.drawImage(img,-IX,-IY,bgoptions);
require("Storage").write("imgclock.face.bg", cg.buffer);
bgimg = require("Storage").read("imgclock.face.bg");
}
@ -28,13 +33,14 @@ function draw() {
new Uint8Array(cg.buffer).set(bgimg);
// draw time
cg.setColor(inf.col);
cg.setFontAlign(-1,-1);
var x = 0;
var x = 40;
cg.setFont("7x11Numeric7Seg",3);
cg.drawString((" "+t.getHours()).substr(-2), x, 0);
x+=42;
cg.setFontAlign(1,-1);
cg.drawString(t.getHours(), x, 0);
x+=2;
cg.fillRect(x, 10, x+2, 10+2).fillRect(x, 20, x+2, 20+2);
x+=6;
cg.setFontAlign(-1,-1);
cg.drawString(("0"+t.getMinutes()).substr(-2), x, 0);
x+=44;
cg.setFont("7x11Numeric7Seg",1);
@ -47,7 +53,7 @@ function draw() {
}
// draw background
g.drawImage(img, 0,OY);
g.drawImage(img, 0,OY,bgoptions);
// draw clock itself and do it every second
draw();
var secondInterval = setInterval(draw,1000);