Fast HEIC to JPEG converter.
Project description
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 for fast, in-process decoding in macOS, Linux or Windows.
🚀 Installation
-
Install the
uvpackage manager with the official installer (orbrew install uvon macOS / Linux). -
Install the tool:
uv tool install heic2jpg
📖 Usage
Convert a single file:
heic2jpg path/to/photo.HEIC
Convert all files in directory:
heic2jpg path/to/photo/album
Convert all files in current directory:
heic2jpg
Convert all files in current directory preserving metadata and timestamps:
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file heic2jpg-2.1.0.tar.gz.
File metadata
- Download URL: heic2jpg-2.1.0.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e44b6424201960601bda08c6bfe5ac8b8cab9b762f19b5a06b93e6fb0b6a9cbb
|
|
| MD5 |
e21c185209bcf9dc08d8252a86c6a463
|
|
| BLAKE2b-256 |
888d2ef23d4c259dbf44cf181558d26f1f36b8e18299832b7f23050e25f06b10
|
File details
Details for the file heic2jpg-2.1.0-py3-none-any.whl.
File metadata
- Download URL: heic2jpg-2.1.0-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
421166e65302de0c4583d3b8656ac7b08ba5009084e095759e306c8fea451691
|
|
| MD5 |
31a60b729e175041bf46839bf60d0289
|
|
| BLAKE2b-256 |
addf3720d68254ed892446bdfebc015a278491095252fa25d4653857dc5759e1
|