@jackiemacklein/nettz-utils
Version:
Serviços de imagem, e-mail, códigos de barras, utilitários numéricos e componentes React para apps Node.js com TypeScript
64 lines (63 loc) • 2.23 kB
TypeScript
/**
* @author Jackiê Macklein
* @company Onside tecnologia/Nettz
* @copyright Todos direitos reservados.
* @description Serviço para processamento de imagens
*/
declare class ImageService {
/**
* Redimensiona uma imagem mantendo a proporção
* @param buffer Buffer da imagem
* @param maxWidth Largura máxima
* @param maxHeight Altura máxima
*/
resize(buffer: Buffer, maxWidth: number, maxHeight: number): Promise<Buffer>;
/**
* Recorta uma imagem em um formato específico
* @param buffer Buffer da imagem
* @param width Largura desejada
* @param height Altura desejada
*/
crop(buffer: Buffer, width: number, height: number): Promise<Buffer>;
/**
* Comprime uma imagem para reduzir seu tamanho
* @param buffer Buffer da imagem
* @param quality Qualidade da compressão (1-100)
*/
compress(buffer: Buffer, quality?: number): Promise<Buffer>;
/**
* Converte uma imagem para um formato específico
* @param buffer Buffer da imagem
* @param format Formato desejado ('jpeg', 'png', 'webp')
*/
convert(buffer: Buffer, format: "jpeg" | "png" | "webp"): Promise<Buffer>;
/**
* Adiciona uma marca d'água a uma imagem
* @param imageBuffer Buffer da imagem principal
* @param watermarkBuffer Buffer da marca d'água
*/
addWatermark(imageBuffer: Buffer, watermarkBuffer: Buffer): Promise<Buffer>;
/**
* Converte um buffer de imagem para base64
* @param buffer Buffer da imagem
* @param format Formato da imagem para o cabeçalho do base64
*/
toBase64(buffer: Buffer, format?: "jpeg" | "png" | "webp"): Promise<string>;
/**
* Converte uma string base64 para buffer
* @param base64 String base64 da imagem
*/
fromBase64(base64: string): Promise<Buffer>;
/**
* Processa uma imagem e retorna em base64
* @param buffer Buffer da imagem
* @param options Opções de processamento
*/
processAndReturnBase64(buffer: Buffer, options?: {
maxWidth?: number;
maxHeight?: number;
quality?: number;
format?: "jpeg" | "png" | "webp";
}): Promise<string>;
}
export default ImageService;