mirror of
https://github.com/ful1e5/apple_cursor.git
synced 2025-05-18 00:54:46 -04:00
📸 Static cursor render
This commit is contained in:
parent
c9bc61b5a8
commit
319812979c
1 changed files with 39 additions and 19 deletions
48
src/index.ts
48
src/index.ts
|
@ -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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue