-
I have a lottie file where the "assets":[{"id":"image_0","w":2000,"h":2000,"u":"","p":"image_0.png","e":1},{"id":"image_1","w":2000,"h":2000,"u":"","p":"image_1.png","e":1},{"id":"image_2","w":2000,"h":2000,"u":"","p":"image_2.png","e":1},{"id":"image_3","w":2000,"h":2000,"u":"","p":"image_3.png","e":1},{"id":"image_4","w":2000,"h":2000,"u":"","p":"image_4.png","e":1},{"id":"image_5","w":2000,"h":2000,"u":"","p":"image_5.png","e":1},{"id":"image_6","w":2000,"h":2000,"u":"","p":"image_6.png","e":1},{"id":"image_7","w":2000,"h":2000,"u":"","p":"image_7.png","e":1},{"id":"image_8","w":2000,"h":2000,"u":"","p":"image_8.png","e":1},{"id":"image_9","w":2000,"h":2000,"u":"","p":"image_9.png","e":1},{"id":"image_10","w":2000,"h":2000,"u":"","p":"image_10.png","e":1},{"id":"image_11","w":2000,"h":2000,"u":"","p":"image_11.png","e":1},{"id":"image_12","w":2000,"h":2000,"u":"","p":"image_12.png","e":1},{"id":"image_13","w":2000,"h":2000,"u":"","p":"image_13.png","e":1},{"id":"image_14","w":2000,"h":2000,"u":"","p":"image_14.png","e":1},{"id":"image_15","w":2000,"h":2000,"u":"","p":"image_15.png","e":1},{"id":"image_16","w":2000,"h":2000,"u":"","p":"image_16.png","e":1},{"id":"image_17","w":2000,"h":2000,"u":"","p":"image_17.png","e":1},{"id":"image_18","w":2000,"h":2000,"u":"","p":"image_18.png","e":1},{"id":"image_19","w":2000,"h":2000,"u":"","p":"image_19.png","e":1},{"id":"image_20","w":2000,"h":2000,"u":"","p":"image_20.png","e":1},{"id":"image_21","w":2000,"h":2000,"u":"","p":"image_21.png","e":1},{"id":"image_22","w":2000,"h":2000,"u":"","p":"image_22.png","e":1},{"id":"image_23","w":2000,"h":2000,"u":"","p":"image_23.png","e":1}] I'd like to convert it to a file that includes the images as base64 so that I don't have to mess with native config. Is there a straightforward way to do that? |
Beta Was this translation helpful? Give feedback.
Answered by
iway1
Feb 4, 2023
Replies: 1 comment
-
Was able to create a script for it - just replace the import fs from "node:fs";
import { program } from "commander";
program
.option("-i, --injectFile <inject file>", "Destination file")
.option("-s, --sourceDir <source directory>", "Source directory")
.option("-o, --outputFile <output directory>", "Inject file");
type OptionsType = {
injectFile?: string;
sourceDir?: string;
};
type PartialLottieFile = {
assets: { p: string }[];
};
program.parse();
const options = program.opts() as OptionsType;
if (!(options.injectFile && options.sourceDir))
throw new Error("Pass all options plz.");
const dir = fs.readdirSync(options.sourceDir);
const overwriteMap: { [fileName: string]: string } = {};
dir.forEach((e) => {
const r =
"data:image/png;base64," +
fs.readFileSync(`${options.sourceDir}/${e}`, { encoding: "base64" });
overwriteMap[e] = r;
});
const lottieJson = JSON.parse(
fs.readFileSync(options.injectFile).toString()
) as PartialLottieFile;
lottieJson.assets = lottieJson.assets.map((e) => {
return { ...e, p: overwriteMap[e.p] };
});
fs.writeFileSync(
options.injectFile.replace(".json", "_injected.json"),
JSON.stringify(lottieJson)
); |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
iway1
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Was able to create a script for it - just replace the
p
property with the base 64: