123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- 'use strict'
- require = require('esm')(module)
- const fs = require('fs-extra')
- const yargs = require('yargs')
- const path = require('path')
- const { getImage } = require('./server/routes/getImage')
- const { cutImage } = require('./server/routes/getImageExtracts')
- const cli = yargs
- .usage('Cut a scene using provided configuration.')
- .usage('Usage: node generateExtracts.js --sceneName=<sceneName> --quality=<quality> [--extractConfigX=<extractConfigX=4>] [--extractConfigY=<extractConfigY=4>] [--outputDir=<outputDir>]')
- .example('node generateExtracts.js --sceneName=cuisine01 --quality=150 --extractConfigX=4 --extractConfigY=5 --outputDir=extracts')
- .option('sceneName', {
- demandOption: true,
- describe: 'Input scene. Must be in the `./images` directory',
- type: 'string'
- })
- .option('quality', {
- demandOption: true,
- describe: 'Scene quality to choose.',
- type: Number
- })
- .option('extractConfigX', {
- demandOption: false,
- describe: 'Horizontal extracting configuration. Defaults to 4.',
- type: Number,
- default: 4
- })
- .option('extractConfigY', {
- demandOption: false,
- describe: 'Vertical extracting configuration. Defaults to 4.',
- type: Number,
- default: 4
- })
- .option('outputDir', {
- demandOption: false,
- describe: 'Directory where to output extracts. Defaults to the extracts directory.',
- type: 'string'
- })
- .help('h')
- .alias('h', 'help')
- .wrap(yargs.terminalWidth())
- .argv
- const setup = async () => {
- const { sceneName, quality, extractConfigX, extractConfigY, outputDir } = cli
- console.log(sceneName, quality, extractConfigX, extractConfigY, outputDir)
-
- const image = await getImage(sceneName, quality)
-
- const extracts = await cutImage(image, extractConfigX, extractConfigY)
-
- if (outputDir)
- await Promise.all(extracts.map(x => fs.move(x.path, path.resolve(outputDir, path.basename(x.path)))))
- }
- setup()
|