heic-decode
Decode HEIC images to extract raw pixel data.
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,
height,
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) {
const {
width,
height,
data
} = await image.decode();
}
})();
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.
Related
- 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