image-optimizer-s3-fastcodeco
Version:
IMAGE OPTIMIZER FASTCODE CO --
36 lines (32 loc) • 1.3 kB
text/typescript
import sharp, { Sharp } from "sharp";
/**
* @function
* @name processingImage
* @description Function for processing the image and necessary adjustments
* @param { Sharp } image
* @param { string } uuid
* @param { number } resizeFile
*/
export const processingImageService = (data: Buffer, resizeFile: number = 1024): Promise<Buffer> => {
return new Promise(async (resolve, reject) => {
try {
const image = sharp(data);
const metadata:any = await image.metadata();
switch(metadata.format) {
case "jpeg" || "jpg": {
image.jpeg({ mozjpeg: true });
break;
}
default: {
image.png({ palette: true, compressionLevel: 6, quality: 90 });
}
}
if(metadata.width > resizeFile) image.resize(resizeFile);
const buffer:Buffer = await image.toBuffer();
resolve(<Buffer> buffer);
} catch (error) {
console.log('Error en aws:', error);
reject(error);
}
})
}