An open API service indexing awesome lists of open source software.

https://github.com/x-cod3r/image-converter-resizer

App to resize and convert images or make icons from different type of images
https://github.com/x-cod3r/image-converter-resizer

convert ico icon image image-processing jpeg png resize resize-images

Last synced: 12 months ago
JSON representation

App to resize and convert images or make icons from different type of images

Awesome Lists containing this project

README

          

# ๐Ÿ–ผ๏ธ Bulk Image Converter

![Python](https://img.shields.io/badge/Python-3.6+-blue.svg)
![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)
![License](https://img.shields.io/badge/License-MIT-green.svg)
![GUI](https://img.shields.io/badge/GUI-Tkinter-orange.svg)

*A powerful, user-friendly GUI tool for bulk image format conversion and resizing*

[Features](#-features) โ€ข [Installation](#-installation) โ€ข [Usage](#-usage) โ€ข [Supported Formats](#-supported-image-formats) โ€ข [Screenshots](#-screenshots)

---

## โœจ Features

- ๐ŸŽฏ **Intuitive Interface**: Clean, modern GUI with scrollable layout
- ๐Ÿ“ฆ **Bulk Processing**: Convert multiple images simultaneously
- ๐Ÿ”„ **Flexible Conversion**: Choose individual formats or batch convert to one format
- ๐Ÿ–ผ๏ธ **Format Support**: JPEG, PNG, WebP, BMP, TIFF, ICO, GIF, and HEIC*
- ๐Ÿ“ **Smart Resizing**: Maintain aspect ratio, custom dimensions, or percentage scaling
- โšก **Quality Control**: Adjustable quality settings for lossy formats
- ๐Ÿ“Š **Progress Tracking**: Real-time conversion progress with detailed status
- ๐Ÿ›ก๏ธ **Error Handling**: Graceful handling of unsupported files and errors
- ๐Ÿš€ **Cross-Platform**: Works seamlessly on Windows, macOS, and Linux

*HEIC support requires pillow-heif package

## ๐Ÿš€ Quick Start

### Prerequisites
- Python 3.6 or higher
- PIL/Pillow (for image processing)
- tkinter (usually included with Python)

### Installation

1. **Clone the repository**
```bash
git clone https://github.com/yourusername/bulk-image-converter.git
cd bulk-image-converter
```

2. **Install dependencies**
```bash
pip install Pillow
# Optional: For HEIC support
pip install pillow-heif
```

3. **Run the application**
```bash
python image_converter.py
```

### Alternative: Download Release
Download the latest release from the [Releases page](https://github.com/yourusername/bulk-image-converter/releases) and run the standalone executable.

## ๐ŸŽฎ Usage

### Basic Workflow
1. **Launch** the application
2. **Select Images**:
- Click "Browse Files" to select individual images
- Choose multiple files using Ctrl/Cmd+click
3. **Choose Output Directory** (optional - defaults to source directory)
4. **Configure Conversion**:
- **Mode 1**: Convert all files to one format
- **Mode 2**: Set individual target formats (double-click files)
5. **Set Quality**: Adjust quality for JPEG/WebP/HEIC (1-100)
6. **Configure Resizing** (optional):
- Keep original size
- Custom dimensions with aspect ratio preservation
- Percentage scaling
7. **Convert**: Click "Convert Images" and monitor progress

### Advanced Options

#### Conversion Modes
- **All to One Format**: Convert all selected images to the same format
- **Individual Selection**: Double-click each file to set its target format

#### Resizing Options
- **Keep Original**: Maintain original dimensions
- **Custom Size**: Set specific width/height with optional aspect ratio preservation
- **Percentage**: Scale by percentage (e.g., 50% = half size)

## ๐Ÿ“‹ Supported Image Formats

**Input Formats**
- JPEG/JPG
- PNG
- BMP
- TIFF/TIF
- WebP
- GIF
- HEIC/HEIF*

**Output Formats**
- JPEG (with quality control)
- PNG (lossless)
- WebP (with quality control)
- BMP (uncompressed)
- TIFF (lossless)
- ICO (multi-size icons)
- GIF (animated support)
- HEIC* (with quality control)

*Requires `pillow-heif` package: `pip install pillow-heif`

## ๐Ÿ“ธ Screenshots

### Main Interface
```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Bulk Image Converter โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Select Images: [Browse Files] [Clear] - 5 files selected โ”‚
โ”‚ โ”‚
โ”‚ Output Directory: [Browse Folder] - Same as source dir โ”‚
โ”‚ โ”‚
โ”‚ โ”Œโ”€ Conversion Settings โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ โ— All files to one format โ—‹ Individual format selectionโ”‚ โ”‚
โ”‚ โ”‚ Convert to: [JPEG โ–ผ] Quality: [85 ] โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ Size Settings: โ”‚ โ”‚
โ”‚ โ”‚ โ— Keep original โ—‹ Custom dimensions โ—‹ Percentage โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”‚
โ”‚ โ”Œโ”€ Selected Files โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ File Name โ”‚ Size โ”‚ Format โ”‚ Convert To โ”‚ โ”‚
โ”‚ โ”‚ โ”œโ”€ photo1.png โ”‚ 2.1 MB โ”‚ PNG โ”‚ JPEG โ”‚ โ”‚
โ”‚ โ”‚ โ”œโ”€ image2.heic โ”‚ 3.4 MB โ”‚ HEIC โ”‚ JPEG โ”‚ โ”‚
โ”‚ โ”‚ โ”œโ”€ scan.tiff โ”‚ 8.7 MB โ”‚ TIFF โ”‚ JPEG โ”‚ โ”‚
โ”‚ โ”‚ โ””โ”€ logo.gif โ”‚ 156 KB โ”‚ GIF โ”‚ JPEG โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”‚
โ”‚ [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ] 100% - Ready โ”‚
โ”‚ โ”‚
โ”‚ [Convert Images] โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

## ๐Ÿ› ๏ธ Configuration Options

| Setting | Description | Options |
|---------|-------------|---------|
| **Conversion Mode** | How to handle target formats | All to one format / Individual selection |
| **Output Format** | Target image format | JPEG, PNG, WebP, BMP, TIFF, ICO, GIF, HEIC* |
| **Quality** | Compression quality (lossy formats) | 1-100 (higher = better quality) |
| **Size Mode** | How to handle image dimensions | Keep original / Custom size / Percentage |
| **Aspect Ratio** | Maintain proportions when resizing | Enabled / Disabled |

## ๐ŸŽฏ Use Cases

- **Web Optimization**: Convert images to WebP for faster loading
- **Icon Creation**: Generate ICO files with multiple sizes for applications
- **Batch Processing**: Convert camera RAW files to standard formats
- **Size Reduction**: Compress images for email or storage
- **Format Migration**: Convert legacy formats to modern ones
- **Social Media**: Resize images for different platform requirements

## ๐Ÿ”ง Technical Details

### Quality Settings
- **JPEG**: 1-100 (recommended: 85-95 for photos, 75-85 for web)
- **WebP**: 1-100 (typically 10-15% smaller than JPEG at same quality)
- **HEIC**: 1-100 (Apple's format, excellent compression)

### ICO Generation
- Automatically creates multi-size icons: 16ร—16, 32ร—32, 48ร—48, 64ร—64, 128ร—128, 256ร—256
- Perfect for Windows applications and favicons

### Threading
- Non-blocking UI with background processing
- Real-time progress updates
- Graceful error handling per file

## ๐Ÿค Contributing

Contributions welcome! Areas for improvement:

1. **Fork** the repository
2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)
3. **Commit** changes (`git commit -m 'Add amazing feature'`)
4. **Push** to branch (`git push origin feature/amazing-feature`)
5. **Open** a Pull Request

### Ideas for Contributions
- ๐ŸŽจ Modern UI themes and dark mode
- ๐Ÿ“ฑ Additional format support (AVIF, JXL)
- ๐Ÿ”ง Command-line interface
- ๐ŸŒ Internationalization
- ๐Ÿ“Š Batch statistics and reporting
- ๐Ÿ–ผ๏ธ Image preview functionality
- ๐ŸŽ›๏ธ Advanced filtering options

## ๐Ÿ› Bug Reports & Feature Requests

Found a bug? Have an idea? Open an issue on the [Issues page](https://github.com/yourusername/bulk-image-converter/issues).

**Bug Report Template:**
- Python version and OS
- PIL/Pillow version
- Input image format and size
- Steps to reproduce
- Error message (if any)

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- Built with Python's Pillow library for robust image processing
- Uses tkinter for cross-platform GUI compatibility
- HEIC support via pillow-heif library
- Inspired by the need for simple bulk image processing tools

## ๐Ÿ“Š Performance

- **Speed**: Processes 100+ images efficiently with threading
- **Memory**: Optimized memory usage with image streaming
- **Quality**: Preserves image quality with smart compression
- **Compatibility**: Handles various color modes and transparency

---


Made with โค๏ธ for photographers, designers, and developers