IMG Buddy is a batch image compression and format conversion tool designed for developers, designers, and content creators.
It helps optimize image assets by reducing file size while maintaining visual quality — ideal for web projects, game assets, UI resources, and asset pipelines.
The tool automatically:
- Compresses images in bulk
- Converts between formats (JPEG, PNG, WebP, etc.)
- Preserves folder simplicity with flat output
- Handles RGBA → RGB conversion automatically
- Supports batch processing
- Is fully configurable via YAML
- Can be distributed as a standalone executable
MapTextureCreator/
├── img_buddy.py # Core processing logic
├── config.yaml # Tool configuration
│
├── in/ # Input map textures
├── out/ # Generated minimap textures
│
├── build.sh # Linux / Git Bash build script
├── release.sh # Release packaging script
│
└── bin/ # Compiled executable output
-
Input Discovery
Scans thein/directory for supported image formats. -
Format Validation
Filters unsupported files and validates readable images. -
Color Mode Normalization
Automatically converts RGBA images to RGB for JPEG compatibility. -
Compression & Conversion
Applies quality settings and exports images to the selected output format. -
Statistics Collection
Tracks input size, output size, compression ratio, and processing time.
All behavior is controlled via config.yaml.
Example configuration:
app:
input_dir: "./in"
output_dir: "./out"
image:
quality: 85
format: "jpeg"
options:
recursive: false
overwrite: trueUsing the executable (recommended):
Download the latest release, extract it, place your images in the in/ folder, and run IMGBuddy.exe. Optimized images will appear inside the out/ folder. No Python installation is required.
Running from source:
Install Python 3.9+, install dependencies using pip install -r requirements.txt, place images in the in/ folder, and run python map_texture_creator.py.
- Python 3.9+
- pip
All required Python dependencies are listed in requirements.txt.
Install them using:
pip install -r requirements.txtIf you use the compiled executable, Python is not required.
chmod +x build.sh
./build.shAfter a successful build:
bin/
└── MapTextureCreator.exe
To run the tool:
- Place
config.yaml,in/, andout/next to the executable - Run
IMGBuddy.exe
Releases are used to distribute stable, ready-to-use builds of IMG Buddy for end users.
Each release represents a versioned snapshot of the tool and includes a downloadable package containing the executable and default configuration.
Create a git tag first before initiating the release
git tag v1.0.0
git push origin v1.0.0Each release package includes:
IMGBuddy.exe– Standalone Windows executableconfig.yaml– Default configuration filein/– Input directory for map texturesout/– Output directory for generated minimaps
Release packages are distributed as a single ZIP file:
img_buddy_vX-Y-Z.zip
Example:
img_buddy_v1-0-0.zip
IMG Buddy follows Semantic Versioning:
MAJOR.MINOR.PATCH
- MAJOR – Breaking changes
- MINOR – New features (backward compatible)
- PATCH – Bug fixes only
The version number is:
- Defined in the source code
- Used in the release filename
- Matched with the GitHub release tag
- Ensure the
mainbranch is stable and up to date - Build the executable using
build.sh - Create the release package using
release.sh - Upload the generated ZIP from the
releases/directory to GitHub Releases - Create a Git tag matching the version (for example
v1.0.0)
- Go to the Releases section on GitHub
- Download the latest ZIP file
- Extract the archive
- Update
config.yamlif needed - Place input images in the
in/directory - Run
IMGBuddy.exe
- Releases are built for Windows
- Python is not required when using release builds
- Source code remains available for advanced users and contributors
Releases are the recommended way to use IMG Buddy.
Contributions are welcome.
- Keep the processing pipeline deterministic
- Avoid engine-specific dependencies
- Maintain YAML-based configuration
- Follow existing logging and structure conventions
- Multi-threaded processing
- Progress bar display
- Resize and scale presets
- Target size-based compression
- Automatic WebP optimization
- CLI flag support
- CI/CD release automation
This project is intended for asset optimization and developer tooling use. Add a license file (MIT, Apache 2.0, or proprietary) as appropriate.