rexize 0.2.3
CLI to bulk resize and convert images recursively
License: MIT
Requires Python: <4.0,>=3.11
Keywords: cli, image, resize, convert, bulk

# Rexize - Bulk Resize and Convert Images tool

Welcome to the Rexize CLI Tool, an open-source command-line interface tool designed for bulk resizing and converting image files. This tool efficiently processes images in a directory recursively, outputting them to a specified directory with your chosen dimensions and formats. It is built with flexibility and efficiency in mind, to cater to a wide range of use cases and users.


## Features

- **Bulk Resizing**: Resize multiple images in a batch to your desired dimensions.
- **Format Conversion**: Convert images into different formats (e.g., JPEG, PNG) in one go.
- **Recursive Directory Processing**: Process images in a directory and its subdirectories.
- **Custom Output Directory**: Specify a different directory to output the processed images.


## About
This CLI tool for bulk resizing and converting image files has wide-ranging applications, benefiting users in web development, digital marketing, photography, and data science. It streamlines workflows, ensures consistency in image quality and size, and facilitates efficient storage and transfer.


## Potential Use Cases

This tool is versatile and can be beneficial across various fields. Its potential use cases and benefits span several domains, including but not limited to:

1. **Web Development and Design**: Optimize images for web usage, ensuring fast loading times and responsiveness without compromising quality. Bulk prepare thumbnails, hero images, and other assets for websites.
2. **Digital Marketing**: Prepare images for different social media platforms, email campaigns, and online ads with ease.
3. **Photography**: Resize and convert images for client delivery, portfolio display, or contest submissions efficiently.
4. **Data Science and Machine Learning**: Automate the preprocessing of images for computer vision projects.
5. **Archiving and Digital Libraries**: Standardize image sizes and formats for digital archiving purposes.
6. **Personal Use**: Manage personal image collections, optimizing for storage or preparing for social media and personal websites.


## Benefits

- **Efficiency and Time-Saving**: Automates a task that would be incredibly time-consuming if done manually, especially for large image collections.
- **Quality and Consistency**: Ensures that all images meet set criteria for size and format, maintaining a high standard across a project or campaign.
- **Open-Source Collaboration**: Being open-sourced, it encourages collaboration and contributions from other developers, leading to new features, bug fixes, and improvements.
- **Customization and Flexibility**: Users can adapt the tool to fit their specific needs, whether that's integrating it into larger workflows or customizing it for unique project requirements.
- **Resource Optimization**: Helps in optimizing web pages by reducing load times and improving user experience, which can contribute to better SEO rankings and user retention.


## Getting Started
To get started with Rexize, please ensure you have the Prerequisites and follow the installation instructions below:

### Prerequisites
- Python 3.11 or higher
- Pip package manager
- Basic knowledge of the command line interface for now. A GUI wrapper is in the works.

### Installation
```bash
pip install rexize
```

## Usage
```
rexize [options] input_folder output_folder


  Bulk resize and convert images from a folder recursively.


  positional arguments:
    input_folder          Input folder containing images
    output_folder         Output folder for resized images

  options:
    -h, --help            show this help message and exit
    -W WIDTH, --width WIDTH
                          Width to resize the image. Suffix with for percentage
    -H HEIGHT, --height HEIGHT
                          Height to resize the image. Suffix with for percentage
    -M MAX_SIZE, --max-size MAX_SIZE
                          Maximum size in pixels for the image. Resize if larger than this size
    -f FORMAT, --format FORMAT
                          Format of the output image: JPEG, PNG, WEBP, GIF, TIFF, BMP
    --rgb                 Downscale RGBA images to RGB
    --grayscale           Downscale images to Grayscale
    -q, --quiet           Suppress all output messages, except errors
    --verbose             Verbose output for debugging

```


## Project URLs
- **GitHub Repository**: https://github.com/joelee/rexize
- **PyPI Package**: https://pypi.org/project/rexize/


## How to Contribute

We welcome contributions from the community, whether it's adding new features, fixing bugs, or improving documentation. If you have a feature request or have identified an issue, please open an issue on GitHub. We also encourage you to fork the repository and submit pull requests with your improvements.


## Features TO DO
- [ ] User documentation
- [ ] Bulk renaming image files
- [ ] Rotation and Cropping support
- [ ] Custom filters
- [ ] A new GUI Wrapper
- [ ] Increase Test Coverage to above 90%