quality-tools
Version:
Biblioteca com ferramentas de qualidade e manipulação de imagem
33 lines (27 loc) • 895 B
text/typescript
import sharp from 'sharp';
import path from 'path';
import fs from 'fs';
/**
* Converte qualquer imagem para .webp
* @param inputPath Caminho da imagem original
* @param outputPath Caminho para salvar a imagem .webp (opcional)
* @param quality Qualidade da imagem (0-100), padrão: 80
* @returns Caminho da imagem convertida
*/
export async function convertToWebp(
inputPath: string,
outputPath?: string,
quality: number = 80
): Promise<string> {
if (!fs.existsSync(inputPath)) {
throw new Error(`Arquivo não encontrado: ${inputPath}`);
}
const ext = path.extname(inputPath);
const baseName = path.basename(inputPath, ext);
const dir = path.dirname(inputPath);
const finalOutput = outputPath || path.join(dir, `${baseName}.webp`);
await sharp(inputPath)
.webp({ quality })
.toFile(finalOutput);
return finalOutput;
}