new ImageCompressor(encoder [, options])
Classe que disponibiliza métodos de compressão de imagem
São suportados os seguintes formatos de entrada:
- BMP
- DDS
- OpenEXR
- Farbfeld
- GIF
- HDR
- ICO
- JPEG
- PNG
- PNM
- QOI
- TGA
- TIFF
- WebP
Parameters:
| Name | Type | Argument | Description |
|---|---|---|---|
encoder |
string | Algoritmo que será usado para codificar a imagem. Pode ser "png", "jpeg", "mozjpeg", "webp" ou "avif". |
|
options |
PngOptions | JpegOptions | WebpOptions | AvifOptions |
<optional> |
Opções de compressão. Cada encoder possui um conjunto de opções específico. |
Members
-
encoder :'png'|'jpeg'|'mozjpeg'|'webp'|'avif'
-
Nome do encoder usado para compressão.
Type:
- 'png' | 'jpeg' | 'mozjpeg' | 'webp' | 'avif'
-
fileExtension :'.png'|'.jpeg'|'.webp'|'.avif'
-
Extensão de arquivo recomendada para imagens comprimidas com este compressor.
Type:
- '.png' | '.jpeg' | '.webp' | '.avif'
Example
const ImageCompressor = require('@nginstack/engine/lib/compress/ImageCompressor.js'); const compressor = new ImageCompressor('mozjpeg'); const fileExt = compressor.fileExtension; // '.jpeg' -
mimeType :'image/png'|'image/jpeg'|'image/webp'|'image/avif'
-
Tipo MIME das imagens resultantes após serem comprimidas com este compressor.
Type:
- 'image/png' | 'image/jpeg' | 'image/webp' | 'image/avif'
Methods
-
compressBytes(content)
-
Comprime a imagem informada utilizando o encoder e as opções informadas no construtor.
Parameters:
Name Type Description contentUint8Array | ArrayBuffer Imagem de entrada em formato binário.
Returns:
Imagem de saída em formato binário.
- Type
- Uint8Array
Example
const ImageCompressor = require('@nginstack/engine/lib/compress/ImageCompressor.js'); const File = require('@nginstack/engine/lib/io/File.js'); const binaryStringToUint8Array = require('@nginstack/engine/lib/array/binaryStringToUint8Array.js'); const compressor = new ImageCompressor('jpeg', { quality: 70 }); const content = binaryStringToUint8Array(File.stringFromFile('image.png', 'binary')); const compressedImage = compressor.compressBytes(content); -
compressFile(inputPath, outputPath)
-
Comprime o arquivo de imagem no caminho de entrada informado utilizando o encoder e as opções informadas no construtor. Será criado um arquivo com imagem comprimida no caminho de saída informado. Caso já exista um arquivo no caminho informado, ele será substituído.
Parameters:
Name Type Description inputPathstring Caminho da imagem de entrada.
outputPathstring Caminho da imagem de saída.
Example
const ImageCompressor = require('@nginstack/engine/lib/compress/ImageCompressor.js'); const compressor = new ImageCompressor('avif', { quality: 90, speed: 9 }); compressor.compressFile('input.png', 'output.avif');