Skip to main content

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

  1. Install the uv package manager with the official installer (or brew install uv on macOS / Linux).

  2. 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


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.1.0.tar.gz (9.2 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.1.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

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

Hashes for heic2jpg-2.1.0.tar.gz
Algorithm Hash digest
SHA256 e44b6424201960601bda08c6bfe5ac8b8cab9b762f19b5a06b93e6fb0b6a9cbb
MD5 e21c185209bcf9dc08d8252a86c6a463
BLAKE2b-256 888d2ef23d4c259dbf44cf181558d26f1f36b8e18299832b7f23050e25f06b10

See more details on using hashes here.

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

Hashes for heic2jpg-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 421166e65302de0c4583d3b8656ac7b08ba5009084e095759e306c8fea451691
MD5 31a60b729e175041bf46839bf60d0289
BLAKE2b-256 addf3720d68254ed892446bdfebc015a278491095252fa25d4653857dc5759e1

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