led-canvas-text
Version:
Generate text matrices compatible with led-canvas
34 lines (24 loc) • 959 B
JavaScript
;
var LedCanvasMatrix = require("led-canvas-matrix");
var LedCanvasText = function LedCanvasText(str, font, ledFactory) {
var matrices = [];
str.split("").forEach(function (character) {
var fontCharacter = font.chars[character];
var lineHeight = font.meta.lineHeight;
if (!fontCharacter) {
return matrices.push(new LedCanvasMatrix(0, 0, 4, lineHeight, ledFactory));
}
var charWidth = fontCharacter.width || font.meta.charWidth;
var pixelOffset = fontCharacter.offset || 0;
var matrix = new LedCanvasMatrix(0, 0, charWidth, lineHeight, ledFactory);
fontCharacter.data.forEach(function (pixel) {
matrix.index(pixel + pixelOffset).set(true);
});
matrices.push(matrix);
matrices.push(new LedCanvasMatrix(0, 0, font.meta.charSpacing, lineHeight, ledFactory));
});
return matrices.reduce(function (base, next) {
return base.add(next);
});
};
module.exports = LedCanvasText;