📸 Static cursor render

This commit is contained in:
KaizIqbal 2020-07-27 10:24:13 +05:30
parent c9bc61b5a8
commit 319812979c

View file

@ -1,27 +1,47 @@
import fs from "fs"; import fs from "fs";
import path from "path"; import path from "path";
import puppeteer from "puppeteer";
import { generateRenderTemplate } from "./helpers/htmlTemplate"; import { generateRenderTemplate } from "./helpers/htmlTemplate";
import { staticSvgs, bitmapsDir } from "./config"; import { staticSvgs, bitmapsDir } from "./config";
import { renderSvg } from "./helpers/render"; // --------------------------- Main
(async () => {
const browser = await puppeteer.launch({
ignoreDefaultArgs: process.env.IS_LOCAL ? [" --single-process "] : [],
executablePath: process.env.IS_LOCAL ? "/usr/bin/google-chrome-stable" : "",
headless: true,
});
const generateStaticSvgBitmaps = async (svg: string) => { // Rendering satic .svg files
fs.readFile(svg, "utf8", (error, data) => { for (let svg of staticSvgs) {
if (error) { fs.readFile(svg, "utf8", async (error, data) => {
return console.log(error); if (error) throw new Error(`${error}`);
}
// Generating HTML Template // Generating HTML Template
const template = generateRenderTemplate(data); const template = generateRenderTemplate(data);
// rendering with frames=1 beacause of static // config
const bitmap = `${path.basename(svg, ".svg")}.png`; const bitmap = `${path.basename(svg, ".svg")}.png`;
renderSvg(template, 1, bitmap, bitmapsDir); const out = path.resolve(bitmapsDir, bitmap);
});
};
// iterate over satic .svg files // Render
staticSvgs.forEach(async (svg) => { try {
await generateStaticSvgBitmaps(svg); const page = await browser.newPage();
}); await page.setContent(template);
await page.waitForSelector("#container");
const svgElement = await page.$("#container svg");
if (!svgElement) throw new Error("svg element not found");
await svgElement.screenshot({ omitBackground: true, path: out });
console.log(`Static Cursor rendered at ${out}`);
await page.close();
} catch (error) {
console.error(error);
}
});
}
})();