Node.js bindings to Windows GDI/GDI+ (graphics device interface)
Uses GDI for text rendering and GDI+ for graphics elements.
Beta version, development in progress...
npm i gdi
Some examples can be found in the examples directory.
const GDILib = require('gdi');
// create window
const window = GDILib.init({ title: 'GDILib - Example 1.' });
let angle = 0;
window.onPaint(g => {
// clear screen to gray
// g.clear(r, g, b)
g.clear(39, 40, 34);
// draw text
// g.penColor(r, g, b, a = 255)
g.penColor(255, 255, 255);
// g.font(name, size, weight)
g.font('Consolas', 16, 400);
// g.text(x, y, str)
g.text(30, 30, 'Hello world from GDILib!');
// draw colored triangle
g.penColor(255, 0, 0) ;
// g.line(startX, startY, endX, endY)
g.line(400, 30, 500, 200);
g.penColor(0, 255, 0);
g.line(400, 30, 300, 200);
g.penColor(0, 0, 255) ;
g.line(300, 200, 500, 200);
// draw rotating rectangle
// g.rotate(angle, originX, originY)
g.rotate(angle, 50 + 80, 50 + 80);
g.penColor(255, 255, 255);
// g.rectangle (x, y, width, height)
g.rectangle(80, 80, 100, 100);
});
setInterval(() => {
angle += 1;
window.repaint();
}, 25);
options = {
title: 'GDI Window',
width: 600,
height: 400,
backgroundColor: [39, 40, 34],
frameless: false,
titleBarHeight: 0,
transparency: false,
transparentColor: [255, 0, 0],
alwaysOnTop: false,
persistPosition: true,
minWidth: 150,
minHeight: 150
};