Skip to content

Instantly share code, notes, and snippets.

@goromlagche
Last active August 29, 2015 13:56
Show Gist options
  • Save goromlagche/8863780 to your computer and use it in GitHub Desktop.
Save goromlagche/8863780 to your computer and use it in GitHub Desktop.
IFS='
'
if [[ $# -eq 0 ]] ; then
echo -e '\n\e[32mUsage: compress.sh {-t/--thumbnail|-h/--home|-g169/--generic169|-a/--art|-o43/--other43|-m/--mapImages|-c/--custom}\e[0m\n'
exit 0
fi
thumbnailImage()
{
for entry in $(find $1 -type f)
do
convert "$entry" -resize '75x75^' -gravity center -crop 75x75+0+0 +repage "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
done
if [[ -d "$s" ]] ; then
echo $s
for entry in $(find $s -type f)
do
convert "$entry" -resize '75x75^' -gravity center -crop 75x75+0+0 +repage "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
done
fi
echo '\n\n\n\n\n\e[32m Hit Enter If Stuck \e[0m\n'
}
homeImage()
{
for entry in $(find $1 -type f)
do
convert "$entry" -resize '1366x' "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
done
echo '\n\n\n\n\n\e[32m Hit Enter If Stuck \e[0m\n'
}
genericImage169()
{
s="$1thumbnail"
if [[ -d $s ]]
then
rm -rf "$s"
mkdir -p "$s"
else
mkdir -p "$s"
fi
for entry in $(find $1 -type f)
do
cp "$entry" "$s"
w=$(sudo convert "$entry" -format "%w" info:)
h=$(sudo convert "$entry" -format "%h" info:)
wa=720
ha=405
if [[ $w -lt $wa ]] && [[ $h -lt $ha ]]; then
convert "$entry" -background white -gravity center -extent 720x405 "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
else
convert "$entry" -resize "720x405^" -gravity center -crop 720x405+0+0 +repage "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
fi
done
thumbnailImage $s
echo '\n\n\n\n\n\e[32m Hit Enter If Stuck \e[0m\n'
}
artImage()
{
s="$1thumbnail"
if [[ -d $s ]]
then
rm -rf "$s"
mkdir -p "$s"
else
mkdir -p "$s"
fi
for entry in $(find $1 -type f)
do
cp "$entry" "$s"
convert "$entry" -resize 720x405\> -background white -gravity center -extent 720x405 -strip "$entry";
jpegoptim --max=70 "$entry";
jpegtran -copy none -optimize "$entry";
jpegtran -copy none -progressive "$entry";
done
thumbnailArtImage $s
echo '\n\n\n\n\n\e[32m Hit Enter If Stuck \e[0m\n'
}
thumbnailArtImage(){
for entry in $(find $1 -type f)
do
echo $entry;
convert "$entry" -resize 75x75\> -gravity center -crop 75x75+0+0 +repage -background white -gravity center -extent 75x75 -strip "$entry";
jpegoptim --max=70 "$entry";
jpegtran -copy none -optimize "$entry";
jpegtran -copy none -progressive "$entry";
done
if [[ -d "$s" ]] ; then
for entry in $(find $s -type f)
do
convert "$entry" -resize 75x75\> -gravity center -crop 75x75+0+0 +repage -background white -gravity center -extent 75x75 -strip "$entry";
jpegoptim --max=70 "$entry";
jpegtran -copy none -optimize "$entry";
jpegtran -copy none -progressive "$entry";
done
fi
echo '\n\n\n\n\n\e[32m Hit Enter If Stuck \e[0m\n'
}
otherImage43()
{
for entry in $(find $1 -type f)
do
w=$(sudo convert "$entry" -format "%w" info:)
h=$(sudo convert "$entry" -format "%h" info:)
wa=720
ha=405
if [[ $w -lt $wa ]] && [[ $h -lt $ha ]]; then
convert "$entry" -background white -gravity center -extent 200x225 "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
else
convert "$entry" -resize '300x225^' -gravity center -crop 300x225+0+0 +repage "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
fi
done
echo '\n\n\n\n\n\e[32m Hit Enter If Stuck \e[0m\n'
}
mapImage()
{
for entry in $(find $1 -type f)
do
w=$(sudo convert "$entry" -format "%w" info:)
h=$(sudo convert "$entry" -format "%h" info:)
wa=720
ha=405
if [[ $w -lt $wa ]] && [[ $h -lt $ha ]]; then
convert "$entry" -background white -gravity center -extent 200x150 "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
else
convert "$entry" -resize '200x150^' -gravity center -crop 200x150+0+0 +repage "$entry";
jpegoptim --max=70 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
fi
done
echo "\n\n\n\n\n\e[32mHit Enter If Stuck \e[0m\n\n"
}
customImage()
{
for entry in $(find $1 -type f)
do
convert "$entry" -resize '$3x$4^' -gravity center -crop $5x$6+0+0 +repage "$entry";
jpegoptim --max=$7 "$entry";
jpegoptim --strip-all "$entry";
jpegtran -copy none -optimize "$entry";
convert -strip "$entry" "$entry";
jpegtran -copy none -progressive "$entry";
done
echo "\n\n\n\n\n\e[32mHit Enter If Stuck \e[0m\n\n"
}
while test $# -gt 0; do
case "$1" in
-t|--thumbnail)
if [[ -n $2 ]] ; then
thumbnailImage $2
else
echo -e "\n\e[31mPlease mention the folder name\e[0m\n"
fi
exit
;;
-h|--home)
if [[ -n $2 ]] ; then
homeImage $2
else
echo -e "\n\e[31mPlease mention the folder name\e[0m\n"
fi
exit
;;
-g169|--generic169)
if [[ -n $2 ]] ; then
genericImage169 $2
else
echo -e "\n\e[31mPlease mention the folder name\e[0m\n"
fi
exit
;;
-a|--art)
if [[ -n $2 ]] ; then
artImage $2
else
echo -e "\n\e[31mPlease mention the folder name\e[0m\n"
fi
exit
;;
-o43|--other43)
if [[ -n $2 ]] ; then
otherImage43 $2
else
echo -e "\n\e[31mPlease mention the folder name\e[0m\n"
fi
exit
;;
-m|--map)
if [[ -n $2 ]] ; then
mapImage $2
else
echo -e "\n\e[31mPlease mention the folder name\e[0m\n"
fi
exit
;;
-c|--custom)
if [[ -n $2 ]] ; then
customImage $2 $3 $4 $5 $6 $7
else
echo -e "\n\e[31mPlease mention the folder name\e[0m\n"
echo -e "\n\e[32mfolder-name resize-width resize-height crop-width crop-height compression-percentage \n \n\e[0m"
fi
shift
;;
*)
echo -e "\n\e[31mPlease select valid option \n\e[0m"
break
;;
esac
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment