You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
constfs=require('fs');const{ promisify }=require('util');constdecode=require('heic-decode');(async()=>{constbuffer=awaitpromisify(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}=awaitdecode({ buffer });})();
Decode all images in the file:
constfs=require('fs');const{ promisify }=require('util');constdecode=require('heic-decode');(async()=>{constbuffer=awaitpromisify(fs.readFile)('/path/to/my/multi-image.heic');constimages=awaitdecode.all({ buffer });for(letimageofimages){// decode and use each image individually// so you don't run out of memoryconst{
width,// integer width of the image
height,// integer height of the image
data // Uint8ClampedArray containing pixel data}=awaitimage.decode();}// when you are done, make sure to free all memory used to convert the imagesimages.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.
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
About
🤳 decode heic images to extracts the raw pixel data