You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
565 B
TypeScript
22 lines
565 B
TypeScript
import sharp from 'sharp';
|
|
|
|
const WIDTH = 1600;
|
|
|
|
export const opimized = async (
|
|
inputBuffer: ArrayBuffer,
|
|
width: number = WIDTH,
|
|
): Promise<Buffer> => {
|
|
return await sharp(inputBuffer)
|
|
.resize({ width: width, withoutEnlargement: true })
|
|
.webp()
|
|
.toBuffer();
|
|
};
|
|
|
|
export const opimizedGif = async (inputBuffer: ArrayBuffer): Promise<Buffer> => {
|
|
try {
|
|
return await sharp(inputBuffer, { animated: true }).webp().toBuffer();
|
|
} catch {
|
|
return await sharp(inputBuffer, { animated: true, limitInputPixels: false }).webp().toBuffer();
|
|
}
|
|
};
|