Skip to main content

Fast HEIC to JPEG converter

Project description

heic2jpg

PyPI Version OS Ruff ty CI codecov

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

  1. Install the uv package manager with the official installer, or:
  • macOS: brew install uv
  • Windows: winget install astral-sh.uv
  • Linux (Debian): apt-get install uv
  1. Install the tool:
uv tool install heic2jpg
  1. Test the installation (if the command is not recognised try uv tool update-shell and restart your terminal):
heic2jpg --version

📖 Usage examples

Convert a single file:

heic2jpg path/to/photo.HEIC

Convert all files in directory:

heic2jpg path/to/photo/album
heic2jpg                        # current directory

Convert all files in current directory recursively, preserving metadata and timestamps:

heic2jpg -Rmt

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

heic2jpg-2.2.1.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

heic2jpg-2.2.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file heic2jpg-2.2.1.tar.gz.

File metadata

  • Download URL: heic2jpg-2.2.1.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for heic2jpg-2.2.1.tar.gz
Algorithm Hash digest
SHA256 16e1ca63973d793aeacac7221fa1f0e76c6fc7cd4ded39a4f6c386059954735a
MD5 d41e4ba48aa3e9046752d946f96bfb89
BLAKE2b-256 bcc9589bc0795d68058dd56ae14e2b373b6c073fea1614e5cc6c9c3ec12e7b5d

See more details on using hashes here.

File details

Details for the file heic2jpg-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: heic2jpg-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for heic2jpg-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3e1cbb18644251d3552c72d40979a341d950801fe2ce32eda7ce02f2ffac3ec6
MD5 5946290d18dcc3c50e5751785107e139
BLAKE2b-256 73f872027f7df59487e5adce4c0aefe4f97b14fa2eacd8eab2525f61752710eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page