| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
Decode HEIC images to extract raw pixel data.
npm install heic-decodeDecode 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.
| Back | FazBrowse Home | New Git URL |