Metadata-Version: 2.4
Name: heic2jpg
Version: 2.1.0
Summary: Fast HEIC to JPEG converter.
Keywords: heic,jpeg,jpg,image-conversion,pillow,pillow-heif,batch
Author: Luis Gómez Gutiérrez
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Classifier: Topic :: Utilities
License-File: LICENSE
Requires-Dist: pillow-heif>=0.13
Requires-Dist: Pillow>=9.0

# heic2jpg

`heic2jpg` is a fast HEIC to JPEG converter designed to resolve the compatibility gap between iPhone image files and common desktop workflows. Conversion runs in parallel across worker threads using [pillow-heif](https://pypi.org/project/pillow-heif/) for fast, in-process decoding in macOS, Linux or Windows.


### 🚀 Installation

1. Install the `uv` package manager with the [official installer](https://docs.astral.sh/uv/getting-started/installation/) (or `brew install uv` on macOS / Linux).

2. Install the tool:

```
uv tool install heic2jpg
```

### 📖 Usage

Convert a single file:

```bash
heic2jpg path/to/photo.HEIC
```

Convert all files in directory:
```bash
heic2jpg path/to/photo/album
```

Convert all files in current directory:
```bash
heic2jpg
```

Convert all files in current directory preserving metadata and timestamps:
```bash
heic2jpg -mt
```

Other options:
```
  -q, --quality [1-100] Target quality (default: 30)
  -m, --metadata        Preserve EXIF metadata
  -t, --times           Preserve source file timestamps
  -k, --keep            Keep originals (default: delete after conversion)
  -R, --recursive       Recurse into subdirectories when a directory is given
  -f, --force           Overwrite existing .jpg outputs
```

### 📊 Performance

pillow-heif's C code releases the Python's GIL during HEIF decode and JPEG encode. The default `ThreadPoolExecutor` therefore gets full CPU parallelism with no per-worker process startup cost. That offers over 6x the speed of traditional ImageMagick workflows.

Version          | Backend          | 100 files   |
-----------------|------------------|------------:|
heic2jpg 2.0.0   | pillow-heif      |       ~2.5s |
heic2jpg 1.1.0   | ImageMagick      |      ~15.5s |

Note: absolute throughput will vary with CPU and disk speed.
