heif2jpeg
v0.1.6
Published
Fast HEIC/HEIF to JPEG converter — native, zero runtime dependencies
Readme
heif2jpeg
Fast and simple HEIC/HEIF to JPEG converter for Node.js. Native performance, zero runtime dependencies.
Built with node-api.
Install
npm install heif2jpegPrebuilt binaries are provided for:
| Platform | Architecture | |----------|-------------| | macOS | x64, arm64 | | Linux (glibc) | x64, arm64 | | Linux (musl) | x64, arm64 | | Windows | x64, arm64 |
Works with Node.js, Bun, and Deno.
Usage
const { heifToJpeg } = require("heif2jpeg");
const fs = require("fs");
const heic = fs.readFileSync("photo.heic");
const jpeg = await heifToJpeg(heic, { quality: 85 });
fs.writeFileSync("photo.jpg", jpeg);API
heifToJpeg(input, options?)
Convert a HEIF/HEIC buffer to JPEG.
- input
Buffer: HEIF/HEIC file contents - options.quality
number: JPEG quality, 1-100 (default: 85) - Returns
Promise<Buffer>: JPEG file contents
How it works
All processing runs on the libuv thread pool — the main thread is never blocked.
- libheif parses the HEIF container
- libde265 decodes the HEVC payload to raw RGB pixels
- jpeg-encoder (pure Rust) encodes to JPEG
Building from source
Requires Rust, CMake, and a C/C++ compiler.
git clone --recurse-submodules https://github.com/photon-hq/heif2jpeg.git
cd heif2jpeg
npm install
npx napi build --platform --release
npm testLicense
MIT
