UNPKG

1.69 kBJavaScriptView Raw
1
2const { svg2png } = require('../common/svg2png')
3const { symbolSvg } = require('./swu-symbol-svg');
4const fs = require('fs');
5
6/**
7 * Function that creates a binary PNG image from an SWU symbol key with an optional style string
8 * @function swu.symbolPng
9 * @param {string} swuSym - an SWU symbol key with optional style string
10 * @returns {ArrayBuffer} symbol png
11 * @example
12 * // using promise.then
13 * swu.symbolPng('񀀁-C').then( png => {
14 * console.log(png)
15 * })
16 * @example
17 * // using async/await
18 * const png = await swu.symbolPng('񀀁-C')
19 */
20const symbolPng = async (swuSym) => {
21 let svg = await symbolSvg(swuSym);
22 svg = svg.replace(/<text.*text>/g, "");
23 const png = await svg2png(svg);
24 return png;
25}
26
27/**
28 * Function that creates a data url PNG image from an SWU symbol key with an optional stle string
29 * @function swu.symbolPngDataUrl
30 * @param {string} swuSym - an SWU symbol key with optional style string
31 * @returns {string} symbol png
32 * @example
33 * // using promise.then
34 * swu.symbolPndDataUrl('񀀁-C').then( png => {
35 * console.log(png)
36 * })
37 * @example
38 * // using async/await
39 * const png = await swu.symbolPndDataUrl('񀀁-C')
40 */
41const symbolPngDataUrl = async (swuSym) => {
42 const res = await symbolPng(swuSym);
43 return 'data:image/png;base64,' + res.toString('base64');
44}
45
46if (require.main === module) {
47 if (process.argv[3]) {
48 symbolPng(process.argv[2]).then( res => {
49 fs.writeFileSync(process.argv[3], res);
50 })
51 } else {
52 symbolPngDataUrl(process.argv[2]).then( res => {
53 console.log(res)
54 })
55 }
56} else {
57 module.exports = { symbolPng, symbolPngDataUrl }
58}