🚀 Big News:Socket Has Acquired Secure Annex.Learn More →
Socket
Book a DemoSign in
Socket

heic-decode

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

heic-decode

Decode HEIC images to raw data

latest
Source
npmnpm
Version
2.1.0
Version published
Weekly downloads
396K
-22.84%
Maintainers
1
Weekly downloads
 
Created
Source

heic-decode

Decode HEIC images to extract raw pixel data.

CI npm-downloads npm-version

Install

npm install heic-decode

Usage

Decode the main image in the file:

const fs = require('fs');
const { promisify } = require('util');
const decode = require('heic-decode');

(async () => {
  const buffer = await promisify(fs.readFile)('/path/to/my/image.heic');
  const {
    width,  // integer width of the image
    height, // integer height of the image
    data    // Uint8ClampedArray containing pixel data
  } = await decode({ buffer });
})();

Decode all images in the file:

const fs = require('fs');
const { promisify } = require('util');
const decode = require('heic-decode');

(async () => {
  const buffer = await promisify(fs.readFile)('/path/to/my/multi-image.heic');
  const images = await decode.all({ buffer });

  for (let image of images) {
    // decode and use each image individually
    // so you don't run out of memory
    const {
      width,  // integer width of the image
      height, // integer height of the image
      data    // Uint8ClampedArray containing pixel data
    } = await image.decode();
  }

  // when you are done, make sure to free all memory used to convert the images
  images.dispose();
})();

Note: when decoding a single image (i.e. using decode), all resources are freed automatically after the conversion. However, when decoding all images in a file (i.e. using decode.all), you can decode the images at any time, so there is no safe time for the library to free resources -- you need to make sure to call dispose once you are done.

When the images are decoded, the return value is a plain object in the format of ImageData. You can use this object to integrate with other imaging libraries for processing.

Note that while the decoder returns a Promise, it does the majority of the work synchronously, so you should consider using a worker thread in order to not block the main thread in highly concurrent production environments.

  • heic-cli - convert heic/heif images to jpeg or png from the command line
  • heic-convert - convert heic/heif images to jpeg and png
  • libheif-js - libheif as a pure-javascript npm module

Keywords

heic

FAQs

Package last updated on 04 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts