diff --git a/cli/main.ts b/cli/main.ts index db042ac..d49556e 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -37,8 +37,15 @@ if (files.length < 2) { Deno.exit(1); } +const shuffledFiles = shuffle(files); + +if (shuffledFiles.length > 25) { + console.debug(`Too many files available, shuffling and clamping to 25...`); + shuffledFiles.splice(25, shuffledFiles.length - 25); +} + const images: ProxyImage[] = (await Promise.all( - files.map(async (imageURL) => + shuffledFiles.map(async (imageURL) => canvasKit.MakeImageFromEncoded(await Deno.readFile(imageURL)) ), )).map((image) => new ProxyImage(image!)); @@ -49,7 +56,7 @@ const modeKey: CollageModeType = args["mode"] || choice(collageModeType); const mode = modes.modes[modeKey]; console.log( - `Creating a "${mode.name}" collage from ${images.length} images...`, + `Creating a "${mode.name}" collage...`, ); console.debug(`Images: ${files.join(", ")}`); @@ -60,13 +67,12 @@ const collageConfig: CollageConfig = { numImages: args["n"], }; -const shuffledImages = shuffle(images); const segments = mode.getSegments( context as CastCanvasRenderingContext, collageConfig, - shuffledImages, + images, ); -mode.place(context as CastCanvasRenderingContext, shuffledImages, segments); +mode.place(context as CastCanvasRenderingContext, images, segments); const output = args["output"] || "collage.png"; console.log(`Saving to "${output}"...`);