quality-tools
Version:
Biblioteca com ferramentas de qualidade e manipulação de imagem
30 lines (29 loc) • 1.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertToWebp = convertToWebp;
const sharp_1 = __importDefault(require("sharp"));
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("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
*/
async function convertToWebp(inputPath, outputPath, quality = 80) {
if (!fs_1.default.existsSync(inputPath)) {
throw new Error(`Arquivo não encontrado: ${inputPath}`);
}
const ext = path_1.default.extname(inputPath);
const baseName = path_1.default.basename(inputPath, ext);
const dir = path_1.default.dirname(inputPath);
const finalOutput = outputPath || path_1.default.join(dir, `${baseName}.webp`);
await (0, sharp_1.default)(inputPath)
.webp({ quality })
.toFile(finalOutput);
return finalOutput;
}