-
-
Save ErwannRobin/aefcb54e205bc531a9de to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Install | |
# This script need a API key from TinyPNG. See this page: https://tinypng.com/developers | |
# It also need jq library, which can be install thanks to: `brew install jq` | |
# Usage | |
# cd to your folder. This script will compress all PNG or JPG files recursively. | |
API_KEY="CHANGE_ME" | |
if [ $API_KEY = "CHANGE_ME" ] | |
then | |
echo "CHANGE THE API_KEY in this file." | |
exit 1 | |
fi | |
if ! type "jq" > /dev/null | |
then | |
echo "Please install `jq`" | |
exit 1 | |
fi | |
find . -type f \( -name \*.jpg -o -name \*.png -o -name \*.jpeg \) -print0 | while IFS= read -r -d '' file; do | |
echo "Compress file: $file" | |
json=$(curl -sS --user api:$API_KEY --data-binary @"$file" https://api.tinypng.com/shrink) | |
url=$(jq -n "$json.output.url" | sed -e 's/^"//' -e 's/"$//') | |
echo "Compression OK. Old size: $(jq -n "$json.input.size"), new size: $(jq -n "$json.output.size"), ratio: $(jq -n "$json.output.ratio")" | |
echo "Downloading the compressed file…" | |
curl -sS $url > "$file" | |
echo "Compressed file downloaded with success!" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment