{"id":32629216,"url":"https://github.com/hacktoolkit/gimp-utils","last_synced_at":"2026-07-02T02:31:48.959Z","repository":{"id":319761760,"uuid":"1079103564","full_name":"hacktoolkit/gimp-utils","owner":"hacktoolkit","description":"GIMP command-line utilities for batch image processing. Unix-philosophy tools using GIMP 3.0's headless mode.","archived":false,"fork":false,"pushed_at":"2025-10-20T00:47:12.000Z","size":21567,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-30T22:03:11.033Z","etag":null,"topics":["automation","batch-processing","command-line","gimp","gimp-scripts","hacktoolkit","image-processing","script-fu"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hacktoolkit.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-19T05:19:38.000Z","updated_at":"2025-10-20T00:47:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"74a60880-4fc2-454a-a69c-3754a48c1e6e","html_url":"https://github.com/hacktoolkit/gimp-utils","commit_stats":null,"previous_names":["hacktoolkit/gimp-utils"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hacktoolkit/gimp-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktoolkit%2Fgimp-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktoolkit%2Fgimp-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktoolkit%2Fgimp-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktoolkit%2Fgimp-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hacktoolkit","download_url":"https://codeload.github.com/hacktoolkit/gimp-utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktoolkit%2Fgimp-utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35030920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["automation","batch-processing","command-line","gimp","gimp-scripts","hacktoolkit","image-processing","script-fu"],"created_at":"2025-10-30T22:01:37.766Z","updated_at":"2026-07-02T02:31:48.942Z","avatar_url":"https://github.com/hacktoolkit.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gimp-utils\n\nGIMP utilities for batch image processing\n\nCreated by [@jontsai](https://github.com/jontsai) | Part of [Hacktoolkit](https://github.com/hacktoolkit)\n\n## Overview\n\nA collection of minimal, Unix-philosophy CLI utilities for automated image processing using GIMP's headless mode and Script-Fu.\n\nFollowing the Unix philosophy:\n- Each tool does one thing well\n- Tools use stdin/stdout and can be composed\n- Minimal arguments to memorize\n- Clear help messages when invoked incorrectly\n\n## Installation\n\nClone the repo and add scripts to your PATH, or run directly:\n\n```bash\ngit clone https://github.com/hacktoolkit/gimp-utils.git\ncd gimp-utils\n```\n\nOptional: Add to your PATH\n```bash\nexport PATH=\"$PATH:$HOME/code/gimp-utils\"\n```\n\n## Available Tools\n\n### gimp-white-balance\n\nApply auto white balance (Colors \u003e Auto \u003e White Balance) to images in batch.\n\n**Before \u0026 After Examples:**\n\n*Example images courtesy of [@SkilletzCafe](https://github.com/SkilletzCafe)*\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cb\u003eBefore (Raw)\u003c/b\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cb\u003eAfter (White Balanced)\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://raw.githubusercontent.com/hacktoolkit/gimp-utils/master/examples/white-balance/tearekz_boba_sundae_raw.jpg\" width=\"400\" alt=\"Boba sundae before white balance\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://raw.githubusercontent.com/hacktoolkit/gimp-utils/master/examples/white-balance/tearekz_boba_sundae_white_balanced.jpg\" width=\"400\" alt=\"Boba sundae after white balance\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg src=\"https://raw.githubusercontent.com/hacktoolkit/gimp-utils/master/examples/white-balance/tearekz_dalgona_raw.jpg\" width=\"400\" alt=\"Dalgona before white balance\"\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cimg src=\"https://raw.githubusercontent.com/hacktoolkit/gimp-utils/master/examples/white-balance/tearekz_dalgona_white_balanced.jpg\" width=\"400\" alt=\"Dalgona after white balance\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n**Usage:**\n```bash\ngimp-white-balance INPUT_DIR OUTPUT_DIR [PATTERN]\n```\n\n**Arguments:**\n- `INPUT_DIR` - Directory containing source images\n- `OUTPUT_DIR` - Directory where processed images will be saved (created if it doesn't exist)\n- `PATTERN` - File pattern to match (default: `*.JPG`)\n\n**Examples:**\n```bash\n# Process all JPG files\n./gimp-white-balance ./photos ./processed\n\n# Process PNG files\n./gimp-white-balance ./photos ./processed \"*.png\"\n\n# Process with absolute paths\n./gimp-white-balance ~/Pictures/unprocessed ~/Pictures/processed\n\n# Process all image types\n./gimp-white-balance ./raw ./output \"*.{jpg,JPG,png,PNG}\"\n```\n\n**Output:**\nThe script will:\n1. Find all matching files in INPUT_DIR\n2. Show progress with checkmarks (✓ success, ✗ failure)\n3. Save processed images to OUTPUT_DIR with the same filenames\n\n## Requirements\n\n- GIMP 3.0+ installed at `/Applications/GIMP.app` (macOS)\n- Script-Fu support (built into GIMP)\n- Bash shell\n\n**Platform Support:**\n- Currently supports macOS only\n- Linux/Windows support coming soon (contributions welcome!)\n\n**Installation Notes:**\n- The script expects GIMP to be installed at the standard macOS location: `/Applications/GIMP.app`\n- If GIMP is installed elsewhere, edit the script and update the path on line 69\n\n## Notes\n\n- **GIMP 3.0 Compatibility**: These scripts use GIMP 3.0's Script-Fu v3 API\n- **Non-destructive**: Original files are never modified\n- **Progress indicator**: Real-time feedback shows which files succeeded/failed\n- **Error handling**: Continues processing remaining files even if one fails\n\n## Technical Details\n\nThis tool uses GIMP's batch mode with Script-Fu v3 dialect to process images without GUI overhead. Each image is:\n1. Loaded in non-interactive mode\n2. Auto white balance applied using `gimp-drawable-levels-stretch`\n3. Flattened to a single layer\n4. Saved to the output directory\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\nAreas for contribution:\n- Linux support (detecting GIMP installation paths)\n- Windows support\n- Additional image processing utilities\n- Performance improvements\n\n## Credits\n\nCreated and maintained by [@jontsai](https://github.com/jontsai)\n\nSponsored by [@hacktoolkit](https://github.com/hacktoolkit)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacktoolkit%2Fgimp-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhacktoolkit%2Fgimp-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacktoolkit%2Fgimp-utils/lists"}