Skip to content

elsewaregames/img_buddy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMG Buddy

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

Architecture

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

Processing Pipeline

  1. Input Discovery
    Scans the in/ directory for supported image formats.

  2. Format Validation
    Filters unsupported files and validates readable images.

  3. Color Mode Normalization
    Automatically converts RGBA images to RGB for JPEG compatibility.

  4. Compression & Conversion
    Applies quality settings and exports images to the selected output format.

  5. Statistics Collection
    Tracks input size, output size, compression ratio, and processing time.


Configuration

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: true

How to Run

Using 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.


Install

Requirements (for source usage)

  • Python 3.9+
  • pip

Install Dependencies

All required Python dependencies are listed in requirements.txt.

Install them using:

pip install -r requirements.txt

If you use the compiled executable, Python is not required.


Build

Linux / Git Bash / WSL

chmod +x build.sh
./build.sh

Build Output

After a successful build:

bin/
└── MapTextureCreator.exe

To run the tool:

  • Place config.yaml, in/, and out/ next to the executable
  • Run IMGBuddy.exe

Release

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.0

Release Contents

Each release package includes:

  • IMGBuddy.exe – Standalone Windows executable
  • config.yaml – Default configuration file
  • in/ – Input directory for map textures
  • out/ – 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


Versioning

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

Creating a Release (Maintainers)

  1. Ensure the main branch is stable and up to date
  2. Build the executable using build.sh
  3. Create the release package using release.sh
  4. Upload the generated ZIP from the releases/ directory to GitHub Releases
  5. Create a Git tag matching the version (for example v1.0.0)

Downloading a Release (Users)

  1. Go to the Releases section on GitHub
  2. Download the latest ZIP file
  3. Extract the archive
  4. Update config.yaml if needed
  5. Place input images in the in/ directory
  6. Run IMGBuddy.exe

Notes

  • 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.

Contribution

Contributions are welcome.

Guidelines

  • Keep the processing pipeline deterministic
  • Avoid engine-specific dependencies
  • Maintain YAML-based configuration
  • Follow existing logging and structure conventions

Suggested Improvements

  • Multi-threaded processing
  • Progress bar display
  • Resize and scale presets
  • Target size-based compression
  • Automatic WebP optimization
  • CLI flag support
  • CI/CD release automation

License

This project is intended for asset optimization and developer tooling use. Add a license file (MIT, Apache 2.0, or proprietary) as appropriate.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors