list-gen
A simple helper package for generating lists in JIMP.
Basic Usage
const lines = ['Item #1', 'Item #2', '...'];
const options = {
initialXY: [
[50, 100],
[50, 20]
],
spacing: (x, y) => {
return [x, y + 40];
},
write: './output/',
maxLines: [
25,
40
],
firstBG: './bg-1.png',
extraBG: './bg-2.png',
font: './myFont.fnt'
};
const List = require('list-image-gen');
const list = new List(lines, options);
const resp = await list.generate();
Examples
Use yarn test
or npm run test
to compile these yourself
1. Basic todo list | Output
const list = new List(
[...new Array(22)].map((_, i) => `Item #${i}`),
{
initialXY: [420, 420],
spacing: (x, y) => [x, y + 96.3],
firstBG: path.join(__dirname, '/resources/todolist.jpg'),
write: path.join(__dirname, '/output/todolist/'),
font: Jimp.FONT_SANS_128_BLACK
}
);
await list.generate();
2. Pixel Art Theme | Output
const list = new List(
[...new Array(200)].map((_, i) => `Item #${i}`),
{
initialXY: [
[60, 280],
[60, 10]
],
spacing: (x, y, {remainingLines, pageNumber}) => {
if (pageNumber === 0) {
y += remainingLines.length % 6 === 0 ? 2 : 0;
}
return [x, y + 40];
},
maxLines: [41, 48],
write: path.join(__dirname, '/output/pixelart/'),
firstBG: path.join(__dirname, '/resources/first.png'),
extraBG: path.join(__dirname, '/resources/extra.png'),
font: path.join(__dirname, '/resources/hypnoverse.fnt')
}
);
await list.generate();
3. Staircase Style | Output
const list = new List(
[...new Array(10)].map((_, i) => `User ${i}`),
{
initialXY: [0, 5],
spacing: (x, y) => [x + 100, y + 25],
write: path.join(__dirname, '/output/staircase/'),
firstBG: path.join(__dirname, '/resources/background.png')
}
);
await list.generate();