From 6e36c713b8fb25911c43e1eabbe37daaa625e458 Mon Sep 17 00:00:00 2001 From: Visual-Dawg Date: Thu, 7 Mar 2024 13:36:15 -0500 Subject: [PATCH] fix path with spaces for blurred image generation (#52) --- scripts/generate-blurred-images.mjs | 60 +++++++++++------------------ 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/scripts/generate-blurred-images.mjs b/scripts/generate-blurred-images.mjs index 89d3d21..ca1c6d8 100644 --- a/scripts/generate-blurred-images.mjs +++ b/scripts/generate-blurred-images.mjs @@ -33,13 +33,15 @@ const filePaths = await globby(imageDirectories, { .map((filePath) => new URL(filePath, root)) }) -for (const filePath of filePaths) { - const extension = filePath.pathname.split('.').at(-1) - const generatedFileName = generatedPrefix + getFileNameWithoutExtension(filePath.href) + '.webp' - const outPath = new URL('.', filePath).pathname + generatedFileName +for (const filePathUrl of filePaths) { + const extension = filePathUrl.pathname.split('.').at(-1) + const generatedFileName = + generatedPrefix + getFileNameWithoutExtension(filePathUrl.href) + '.webp' + const outPath = decodeURIComponent(new URL('.', filePathUrl).pathname + generatedFileName) + const filePath = decodeURIComponent(filePathUrl.pathname) const currentBrightness = Number( - exec(`convert "${filePath.pathname}" -colorspace Gray -format "%[mean]" info: `) + exec(`convert "${filePath}" -colorspace Gray -format "%[mean]" info: `) ) // Boost the brightness if the image is very dark @@ -49,7 +51,7 @@ for (const filePath of filePaths) { const svgCommands = extension === 'svg' ? '-background none -resize 2500x2500' : '' exec( - `magick convert ${svgCommands} -brightness-contrast ${brightnessIncrease}x40 -modulate 100,1000,100 ${filePath.pathname} ${outPath}` + `magick convert ${svgCommands} -brightness-contrast ${brightnessIncrease}x40 -modulate 100,1000,100 "${filePath}" "${outPath}"` ) // Modify colors with LUT @@ -59,40 +61,22 @@ for (const filePath of filePaths) { `magick convert -modulate 100,250,100 -scale 10% -gaussian-blur 0x20 -resize 500% -quality 50 "${outPath}" "${outPath}" ` ) - console.log(`Blurred ${filePath.pathname}`) + console.log(`Blurred ${filePath}\nOutpath: ${outPath}\n`) } function exec(command) { - const { stdout, error } = spawnSync(command, { shell: true }) - if (error) throw error + // the try-catch is kinda stupid, but otherwise Node will not give any meaningful info + try { + const { stdout, error, stderr } = spawnSync(command, { + shell: true, + stdio: ['inherit', 'inherit', 'pipe'] + }) - return stdout + if (stderr.toString().trim()) throw stderr.toString().trim() + if (error) throw error + + return stdout + } catch (error) { + throw new Error(error) + } } - -// // parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) - -// // cd "$parent_path" - -// find "../static/imgs/ricing_competitions/" -type f \ -// \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.gif" -o -iname "*.bmp" -o -iname "*.jpeg" -o -iname "*.webp" \) -not -name "generated_*" -print0 | -// while IFS= read -r -d '' filepath; do -// echo "$filepath" gets blurred - -// directory=$(dirname "$filepath") -// filename=$(basename "$filepath") -// generated_filename="${directory}/generated_${filename}" -// brightness=$( convert $filepath -colorspace Gray -format "%[mean]" info: ) -// max_brightness="65535" # The possible maximum brightness possible from the previous command -// brightness_threshold=$( python -c "print( $max_brightness * 0.5 )" ) - -// # Boost the brightness if the image is very dark -// brightness_boost=$( python -c "print( max( (1 - ($brightness / $brightness_threshold)) * 50 , 0) )" ) - -// # Modify colors with LUT -// magick convert -brightness-contrast ${brightness_boost}x40 -modulate 100,1000,100 "$filepath" "$generated_filename" -// magick "$generated_filename" "./hald-clut.color.io.png" -hald-clut "$generated_filename" -// # Also make them smaller to reduce file size -// magick convert -modulate 100,250,100 -scale 10% -gaussian-blur 0x20 -resize 500% -quality 50 "$generated_filename" "$generated_filename" - -// # magick convert -scale 10% -brightness-contrast ${brightness_boost}x25 -modulate 100,500,100 -gaussian-blur 0x20 -resize 1000% "$filepath" "$generated_filename" -// done