43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
|
|
import { createCanvas, registerFont } from 'canvas'
|
||
|
|
import fs from 'fs'
|
||
|
|
|
||
|
|
const cfg = {
|
||
|
|
width: 400,
|
||
|
|
height: 400,
|
||
|
|
fontPath: 'src/assets/font/obsidian/Obsidian-Roman.otf',
|
||
|
|
fontName: 'Obsidian',
|
||
|
|
fontWeight: 'bold',
|
||
|
|
fontSize: '350pt',
|
||
|
|
color: '#fffbe3',
|
||
|
|
background: '#111111',
|
||
|
|
text: 'g.',
|
||
|
|
yOffset: 115,
|
||
|
|
}
|
||
|
|
|
||
|
|
if ( cfg.fontPath ) {
|
||
|
|
registerFont(cfg.fontPath, { family: cfg.fontName })
|
||
|
|
}
|
||
|
|
|
||
|
|
const canvas = createCanvas(cfg.width, cfg.height)
|
||
|
|
const ctx = canvas.getContext('2d')
|
||
|
|
|
||
|
|
// set the background
|
||
|
|
ctx.fillStyle = cfg.background
|
||
|
|
ctx.fillRect(0, 0, cfg.width, cfg.height)
|
||
|
|
|
||
|
|
// set the font
|
||
|
|
ctx.font = `${cfg.fontWeight} ${cfg.fontSize} ${cfg.fontName}`
|
||
|
|
ctx.fillStyle = cfg.color
|
||
|
|
ctx.textAlign = 'center'
|
||
|
|
ctx.textBaseline = 'middle'
|
||
|
|
|
||
|
|
// add the text to the canvas
|
||
|
|
ctx.fillText(cfg.text, cfg.width / 2, cfg.yOffset)
|
||
|
|
|
||
|
|
// write out logo.png
|
||
|
|
const png = fs.createWriteStream('src/assets/logo/logo.png')
|
||
|
|
canvas.createPNGStream().pipe(png)
|
||
|
|
|
||
|
|
const jpg = fs.createWriteStream('src/assets/logo/logo.jpg')
|
||
|
|
canvas.createJPEGStream().pipe(jpg)
|