Adafruit Font Convert
by riaanc
HTML
<textarea id="txtIn"></textarea><br/>
<button id="btn">
Process
</button><br/>
<textarea id="txtOut"></textarea><br/>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
#banner-message.alt button {
background: #fff;
color: #000;
}
JavaScript
function download(data, filename, type) {
var file = new Blob([data], {type: type});
if (window.navigator.msSaveOrOpenBlob) // IE10+
window.navigator.msSaveOrOpenBlob(file, filename);
else { // Others
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
$("#btn").on("click", function(){
$("#txtOut").val("");
const regex = /Bitmaps\[\].*?{(?<bitmaps>.*?)}.*?Glyphs\[\].*?{(?<Glyphs>.*?)};.*GFXfont\s*(?<fontName>\S*).*?{(?<FontDetails>.*?)}/gis;
var str = $("#txtIn").val();
var m = regex.exec(str);
if (m == null)
return;
var glyphs = m.groups["Glyphs"].replace(/{ /g, '[ ').replace(/}, /g, '],').replace(/} /g, '] ');
var bitmaps = m.groups["bitmaps"];
var fontName = m.groups["fontName"];
var fontDetails = m.groups["FontDetails"].split(",");
var startChar = fontDetails[2];
var endChar = fontDetails[3];
var yAdvance = fontDetails[4];
var output = `//Get fonts from:
//Adafruit GFX Library: https://github.com/adafruit/Adafruit-GFX-Library/tree/master/Fonts
//SSD1306 Tools: http://oleddisplay.squix.ch/#/home
//Adafruit GFX Fontconvert: https://github.com/adafruit/Adafruit-GFX-Library/tree/master/fontconvert
//Customize fonts with: https://tchapi.github.io/Adafruit-GFX-Font-Customiser/
//Font structure here: https://github.com/adafruit/Adafruit-GFX-Library/blob/master/gfxfont.h
//To convert to .js file:
// 1. copy the byte array inside xxxBitmaps[] [ <copy this> } to module.exports.Bitmaps
// 2. copy everything inside xxxGlyphs[] and run a string replace so that curly braces are turned into square brackets for a javascript array
// 3. copy the result of step 2 to module.exports.Glyphs
// 4. At the end of the...