Skip to content

Instantly share code, notes, and snippets.

@julianxhokaxhiu
Last active June 15, 2024 17:09
Show Gist options
  • Save julianxhokaxhiu/c0a8e813eabf9d6d9873 to your computer and use it in GitHub Desktop.
Save julianxhokaxhiu/c0a8e813eabf9d6d9873 to your computer and use it in GitHub Desktop.
Recursively optimize all PNG and JPG files wherever they are from the script position and inner ( based on OPTING, PNGCRUSH, ADVANCECOMP and JPEGOPTIM )
#!/bin/bash
# Improved as per feedback from @pascal - https://gist.github.com/julianxhokaxhiu/c0a8e813eabf9d6d9873#gistcomment-3086462
find . -type f -iname "*.png" -exec optipng -nb -nc {} \;
find . -type f -iname "*.png" -exec advpng -z4 {} \;
find . -type f -iname "*.png" -exec pngcrush -rem gAMA -rem alla -rem cHRM -rem iCCP -rem sRGB -rem time -ow {} \;
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -exec jpegoptim -f --strip-all {} \;
@julianxhokaxhiu
Copy link
Author

Basically ensures that all of your files are optimized the same way.

Yes that was the case, nevertheless as things move forward, if there's a better way to tweak this script, I'm open to update it. Let me know what needs to be updated, and I'll do accordingly :)

Thanks to everyone coming here and saying hi, I appreciate any feedback and I'm glad you find this useful. Most of the time I do create gists for myself as a reminder for the future, but I'm glad others find it useful too.

@greg-randall
Copy link

Unless you're using the AdvanceMame emulator to generate PNGs you can skip the advpng line. https://linux.die.net/man/1/advpng

@danbettles
Copy link

Basically ensures that all of your files are optimized the same way.

Yes that was the case, nevertheless as things move forward, if there's a better way to tweak this script, I'm open to update it. Let me know what needs to be updated, and I'll do accordingly :)

Thanks to everyone coming here and saying hi, I appreciate any feedback and I'm glad you find this useful. Most of the time I do create gists for myself as a reminder for the future, but I'm glad others find it useful too.

You could just pop it in a regular repo and allow pull requests. Thanks for the scripts, BTW: very helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment