{"id":19655835,"url":"https://github.com/ryanpcmcquen/image-ultimator","last_synced_at":"2025-06-18T18:34:28.939Z","repository":{"id":21994864,"uuid":"25319895","full_name":"ryanpcmcquen/image-ultimator","owner":"ryanpcmcquen","description":":rice_scene: Make images amazing, recursively and automagically.","archived":false,"fork":false,"pushed_at":"2020-06-15T19:36:53.000Z","size":118,"stargazers_count":54,"open_issues_count":0,"forks_count":2,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-06-17T23:49:25.587Z","etag":null,"topics":["exif-removal","hacktoberfest","image-optimisation","image-optimization","image-processing"],"latest_commit_sha":null,"homepage":"https://imgult.github.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanpcmcquen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-16T20:17:07.000Z","updated_at":"2023-09-08T16:51:26.000Z","dependencies_parsed_at":"2022-07-13T07:31:12.341Z","dependency_job_id":null,"html_url":"https://github.com/ryanpcmcquen/image-ultimator","commit_stats":null,"previous_names":[],"tags_count":100,"template":false,"template_full_name":null,"purl":"pkg:github/ryanpcmcquen/image-ultimator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanpcmcquen%2Fimage-ultimator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanpcmcquen%2Fimage-ultimator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanpcmcquen%2Fimage-ultimator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanpcmcquen%2Fimage-ultimator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanpcmcquen","download_url":"https://codeload.github.com/ryanpcmcquen/image-ultimator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanpcmcquen%2Fimage-ultimator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260609567,"owners_count":23035956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exif-removal","hacktoberfest","image-optimisation","image-optimization","image-processing"],"created_at":"2024-11-11T15:24:11.583Z","updated_at":"2025-06-18T18:34:23.928Z","avatar_url":"https://github.com/ryanpcmcquen.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"`imgult`, The image-ultimator.\n===============\n\n## What is it?\n`imgult` is a tiny and mighty script that will recursively loop through a directory and its subdirectories optimizing all GIFs, JPGs, PNGs and SVGs (the script supports several types of these kinds of extensions, check the source to see). It also removes EXIF data (run with ```EXIFREMOVE=n``` to keep EXIF data). You can backup the images by running it with (```BACKUPIMAGES=true```).\n\nCheck out the [imgult site](https://imgult.github.io)!\n\n## What do people say about it?\n\n[Torkiliuz](https://github.com/Torkiliuz) succesfully tested `imgult` against a **26TB** sample that had approximately **140GB** of images. Wow! He made some helpful suggestions for the `4.0.01` release. Because of that, `imgult` now creates a file called `imgult-processed-files.txt` as a record of previously processed stuff. You can delete it if you do not mind files being processed again. :tada:\n\n### I just want to run it once (it will kindly remove itself):\n\n    curl https://raw.githubusercontent.com/ryanpcmcquen/image-ultimator/master/imgult | sh\n\n### I love this script! I want to *install* it and use it everywhere!\n\n    wget -N https://raw.githubusercontent.com/ryanpcmcquen/image-ultimator/master/imgult; sudo install -m755 imgult /usr/local/bin/; rm imgult\n\n**PSST!** To upgrade `imgult`, just run the same command as install (^^ THIS GUY ^^). It's just a shell script after all! :tada:\n\n\nBefore you run it you need these amazing programs!\n\n```\njpegoptim\nmozjpeg\noptipng\npngquant\ngifsicle\nexiv2\nsvgo\n```\n\nCheck here to see the recommended _minimum_ versions of these tools:\n\nhttps://github.com/ryanpcmcquen/image-ultimator/issues/5#issuecomment-198301854\n\nOf course, newer versions are probably even better! :smiley:\n\n### Linux:\n\n#### Slackware:\n\n    sbopkg -i jpegoptim -i mozjpeg -i optipng -i pngquant -i gifsicle\n\n#### Fedora:\n\n    sudo dnf install jpegoptim optipng pngquant gifsicle exiv2\n\n#### Ubuntu (`16.04+` recommended):\n\n    sudo apt-get install jpegoptim optipng pngquant gifsicle exiv2\n\n---\n\nOn some systems you will need to compile `mozjpeg` from source. You will probably need these:\n\n#### Fedora:\n\n    sudo dnf install nasm libtool autoconf\n\n#### Ubuntu (`16.04+` recommended):\n\n    sudo apt-get install nasm libtool autoconf build-essential\n\nSome Ubuntu systems will also require the following packages:\n\n    sudo apt-get install pkg-config libpng-dev\n\nAfter that, download the most recent release and run something like this:\n\n```sh\nautoreconf -fiv\n./configure --disable-static\n\nmake\nsudo make install\n```\n\n### Mac:\n\n    brew install jpegoptim mozjpeg optipng pngquant gifsicle exiv2\n\n### Linux \u0026 Mac:\n\n    npm install -g svgo\n\n\n# USE IMGULT AT YOUR OWN RISK!\n\nJust run this command in any directory with images. It will *OVERWRITE* images (GIFs, JPGs, PNGs \u0026 SVGs), and loop recursively through all directories INSIDE the directory you run it in. There is a BACKUP option though.  ;^)\n\n\n##### If it is installed, how do I use it?\n\n - 'cd' to the directory you want to use it in\n\nRun:\n\n    imgult\n\nOr feed imgult directories and/or files:\n\n    imgult Downloads/ 1.png 2.jpg\n\n##### EXIF removal\n\nThe default is to remove EXIF data, to keep EXIF data, run:\n\n    EXIFREMOVE=n imgult\n\n\n##### BACKUPs\n\nTo back up all original images to ```imgult-backup-files/```, run:\n\n    BACKUPIMAGES=true imgult\n\nThis can be run with the EXIF option as well:\n\n    EXIFREMOVE=n BACKUPIMAGES=true imgult\n\n##### IMGATCH\n\nTo turn off the image matching service (which ignores previously processed files), either run `imgult` like so:\n\n    ENGAGE_IMGATCH_SERVICE=false imgult\n\nOr, set your environment to have `ENGAGE_IMGATCH_SERVICE` to `false` (`export` it in `.bashrc` or `.bash_profile`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanpcmcquen%2Fimage-ultimator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanpcmcquen%2Fimage-ultimator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanpcmcquen%2Fimage-ultimator/lists"}