Skip to content

Instantly share code, notes, and snippets.

@w7shdev
Last active November 21, 2021 18:13
Show Gist options
  • Save w7shdev/e865871eb9ec12e581b4aa400da6e9a5 to your computer and use it in GitHub Desktop.
Save w7shdev/e865871eb9ec12e581b4aa400da6e9a5 to your computer and use it in GitHub Desktop.
Compress bulk images
#!/bin/bash
# You need to install pngquant
# On mac os `brew install pngquant`
# copy all directories 15-20
# rename the copied directories with suffix i
# ex. i15 , i16 , i17 , i18 ,i19, i20
# This loop will do on only 1 level of nested directories
PH_INPUT_DIRS=`ls i15`
PH_OUTPUT_DIR="15"
echo "creating directories"
mkdir 15 16 17 18 19 20
echo "Creating directories in output folder"
for dir in $PH_INPUT_DIRS; do
mkdir "$PH_OUTPUT_DIR/$dir"
done
echo "preform conver all images to png-8"
for dir in $PH_INPUT_DIRS; do
cd "i15/$dir"
pngquant *.png
for file in *-fs8.png; do
newfile=$(echo $file | sed 's/\-fs8\.png//g')
# echo $newfile
mv $file "../../15/$dir/$newfile.png"
done
cd ../..
done
echo "DONE!!! compressing 15"
PH_INPUT_DIRS_16=`ls i16`
PH_OUTPUT_DIR_16="16"
echo "Creating directories in output folder"
for dir in $PH_INPUT_DIRS_16; do
mkdir "$PH_OUTPUT_DIR_16/$dir"
done
echo "preform conver all images to png-8"
for dir in $PH_INPUT_DIRS_16; do
cd "i16/$dir"
pngquant *.png
for file in *-fs8.png; do
newfile=$(echo $file | sed 's/\-fs8\.png//g')
# echo $newfile
mv $file "../../16/$dir/$newfile.png"
done
cd ../..
done
echo "DONE!!! compressing 16"
PH_INPUT_DIRS_17=`ls i17`
PH_OUTPUT_DIR_17="17"
echo "Creating directories in output folder"
for dir in $PH_INPUT_DIRS_17; do
mkdir "$PH_OUTPUT_DIR_17/$dir"
done
echo "preform conver all images to png-8"
for dir in $PH_INPUT_DIRS_17; do
cd "i17/$dir"
pngquant *.png
for file in *-fs8.png; do
newfile=$(echo $file | sed 's/\-fs8\.png//g')
# echo $newfile
mv $file "../../17/$dir/$newfile.png"
done
cd ../..
done
echo "DONE!!! compressing 17"
PH_INPUT_DIRS_18=`ls i18`
PH_OUTPUT_DIR_18="18"
echo "Creating directories in output folder"
for dir in $PH_INPUT_DIRS_18; do
mkdir "$PH_OUTPUT_DIR_18/$dir"
done
echo "preform conver all images to png-8"
for dir in $PH_INPUT_DIRS_18; do
cd "i18/$dir"
pngquant *.png
for file in *-fs8.png; do
newfile=$(echo $file | sed 's/\-fs8\.png//g')
# echo $newfile
mv $file "../../18/$dir/$newfile.png"
done
cd ../..
done
echo "DONE!!! compressing 18"
PH_INPUT_DIRS_19=`ls i19`
PH_OUTPUT_DIR_19="19"
echo "Creating directories in output folder"
for dir in $PH_INPUT_DIRS_19; do
mkdir "$PH_OUTPUT_DIR_19/$dir"
done
echo "preform conver all images to png-8"
for dir in $PH_INPUT_DIRS_19; do
cd "i19/$dir"
pngquant *.png
for file in *-fs8.png; do
newfile=$(echo $file | sed 's/\-fs8\.png//g')
# echo $newfile
mv $file "../../19/$dir/$newfile.png"
done
cd ../..
done
echo "DONE!!! compressing 19"
PH_INPUT_DIRS_20=`ls i20`
PH_OUTPUT_DIR_20="20"
echo "Creating directories in output folder"
for dir in $PH_INPUT_DIRS_20; do
mkdir "$PH_OUTPUT_DIR_20/$dir"
done
echo "preform conver all images to png-8"
for dir in $PH_INPUT_DIRS_20; do
cd "i20/$dir"
pngquant *.png
for file in *-fs8.png; do
newfile=$(echo $file | sed 's/\-fs8\.png//g')
# echo $newfile
mv $file "../../20/$dir/$newfile.png"
done
cd ../..
done
echo "DONE!!! compressing 20"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment