This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Mecanismo de imagem

O pacote @snapotter/image-engine lida com todas as operações de imagem que não são de IA. Ele encapsula o Sharp e roda inteiramente no próprio processo, sem dependências externas.

Operações

resize

Escala uma imagem para dimensões específicas ou por porcentagem.

ParâmetroTipoDescrição
widthnumberLargura alvo em pixels
heightnumberAltura alvo em pixels
fitstringcover, contain, fill, inside ou outside
withoutEnlargementbooleanSe verdadeiro, não fará upscale de imagens menores
percentagenumberEscala por porcentagem em vez de dimensões absolutas

Você pode definir width, height ou ambos. Se definir apenas um, o outro é calculado para manter a proporção.

crop

Recorta uma região retangular da imagem.

ParâmetroTipoDescrição
leftnumberDeslocamento X a partir da borda esquerda
topnumberDeslocamento Y a partir da borda superior
widthnumberLargura da área de recorte
heightnumberAltura da área de recorte
unitstringpx (padrão) ou percent

rotate

Gira a imagem por um ângulo determinado.

ParâmetroTipoDescrição
anglenumberÂngulo de rotação em graus (0-360)
backgroundstringCor de preenchimento para a área exposta (padrão: #000000). Aplica-se apenas a ângulos que não sejam de 90 graus.

flip

Espelha a imagem horizontalmente, verticalmente ou ambos. Pelo menos um deve ser verdadeiro.

ParâmetroTipoDescrição
horizontalbooleanEspelhar da esquerda para a direita
verticalbooleanEspelhar de cima para baixo

convert

Altera o formato da imagem.

ParâmetroTipoDescrição
formatstringFormato alvo: jpg, png, webp, avif, tiff, gif, jxl, heic, heif, bmp, ico, jp2, qoi
qualitynumberQualidade de compressão (1-100, aplica-se a formatos com perdas)

Os sete primeiros formatos (de jpg a jxl) são codificados pelo Sharp no próprio processo. Os formatos restantes usam codificadores externos na camada da API: heic/heif via heif-enc, bmp/ico via ImageMagick, jp2 via opj_compress e qoi via um codec TypeScript inline.

compress

Reduz o tamanho do arquivo mantendo o mesmo formato.

ParâmetroTipoDescrição
qualitynumberQualidade alvo (1-100)
targetSizeBytesnumberTamanho de arquivo alvo opcional em bytes
formatstringSubstituição de formato opcional

strip-metadata

Remove metadados EXIF, IPTC, XMP e ICC da imagem. Sem parâmetros (ou com stripAll: true), remove tudo. Passe flags individuais para remoção seletiva.

ParâmetroTipoDescrição
stripAllbooleanRemove todos os metadados (padrão quando nenhuma flag está definida)
stripExifbooleanRemove os dados EXIF (incluindo GPS se stripGps não estiver definido separadamente)
stripGpsbooleanRemove os dados de localização GPS
stripIccbooleanRemove o perfil de cor ICC
stripXmpbooleanRemove os metadados XMP

Ajustes de cor

Essas operações modificam as propriedades de cor de uma imagem. Cada uma recebe um único valor numérico.

OperaçãoParâmetroIntervaloDescrição
brightnessvalue-100 a 100Ajustar brilho
contrastvalue-100 a 100Ajustar contraste
saturationvalue-100 a 100Ajustar saturação de cor

Filtros de cor

Estes aplicam uma transformação de cor fixa. Não recebem parâmetros.

OperaçãoDescrição
grayscaleConverter para escala de cinza
sepiaAplicar um tom sépia
invertInverter todas as cores

Canais de cor

Ajusta canais de cor RGB individuais. Os valores são multiplicadores em que 100 = nenhuma alteração.

ParâmetroTipoDescrição
rednumberMultiplicador do canal vermelho (0 a 200, 100 = inalterado)
greennumberMultiplicador do canal verde (0 a 200, 100 = inalterado)
bluenumberMultiplicador do canal azul (0 a 200, 100 = inalterado)

sharpen

Afiação simples controlada por um único valor.

ParâmetroTipoDescrição
valuenumberIntensidade da afiação (0 a 100). Mapeada para um sigma gaussiano de 0.5-10.

sharpen-advanced

Afiação avançada com três métodos selecionáveis e um pré-passe opcional de redução de ruído.

ParâmetroTipoDescrição
methodstringadaptive, unsharp-mask ou high-pass
sigmanumberRaio do desfoque gaussiano, 0.5-10 (adaptativo)
m1numberAfiação de área plana, 0-10 (adaptativo)
m2numberAfiação de área texturizada, 0-20 (adaptativo)
x1numberLimiar plano/irregular, 0-10 (adaptativo)
y2numberClareamento máximo (limite de halo), 0-50 (adaptativo)
y3numberEscurecimento máximo (limite de halo), 0-50 (adaptativo)
amountnumberPorcentagem de intensidade, 0-500 (unsharp-mask)
radiusnumberRaio de desfoque, 0.1-5.0 (unsharp-mask)
thresholdnumberBrilho mínimo de borda, 0-255 (unsharp-mask)
strengthnumberForça de mesclagem, 0-100 (high-pass)
kernelSizenumber3 ou 5 para kernel 3x3 / 5x5 (high-pass)
denoisestringPré-passe de redução de ruído: off, light, medium ou strong

Os parâmetros são específicos de cada método. Forneça apenas os relevantes para o método escolhido.

color-blindness

Simula uma deficiência de visão de cores usando uma matriz 3x3 de recombinação de cores.

ParâmetroTipoDescrição
typestringUm de: protanopia, deuteranopia, tritanopia, protanomaly, deuteranomaly, tritanomaly, achromatopsia, blueConeMonochromacy

edit-metadata

Escreve ou remove campos individuais de metadados EXIF/IPTC sem remover o bloco inteiro.

ParâmetroTipoDescrição
artiststringTag EXIF Artist
copyrightstringTag EXIF Copyright
imageDescriptionstringTag EXIF ImageDescription
softwarestringTag EXIF Software
dateTimestringTag EXIF DateTime
dateTimeOriginalstringTag EXIF DateTimeOriginal
clearGpsbooleanRemove todas as tags GPS
fieldsToRemovestring[]Lista de nomes de campos EXIF a excluir

Todos os parâmetros são opcionais. Os campos listados em fieldsToRemove são excluídos do bloco EXIF existente. Os campos definidos pelos parâmetros nomeados são escritos (ou sobrescritos). Chaves binárias/inseguras como MakerNote são silenciosamente ignoradas.

Detecção de formato

O mecanismo detecta os formatos de entrada automaticamente a partir dos cabeçalhos dos arquivos, não apenas das extensões. Isso significa que um arquivo .jpg que na verdade é um PNG será tratado corretamente. A detecção usa uma abordagem em várias camadas: primeiro os magic bytes, depois a extensão do arquivo como fallback.

O SnapOtter suporta mais de 55 formatos de entrada e 13 formatos de saída, incluindo 23 formatos RAW de câmera de mais de 20 marcas, formatos profissionais (PSD, EPS, OpenEXR, HDR), codecs modernos (JPEG XL, AVIF, HEIC, QOI, JPEG 2000) e formatos científicos/de jogos (FITS, DDS). A decodificação é feita nativamente pelo Sharp sempre que possível, com fallback automático para ImageMagick, LibRaw e decodificadores CLI especializados.

Consulte a página Formatos Suportados para a lista completa.

Extração de metadados

A ferramenta info retorna os metadados da imagem. Consulte Informações da Imagem para a referência completa de campos.

json
{
  "filename": "photo.jpg",
  "fileSize": 2450000,
  "width": 4032,
  "height": 3024,
  "format": "jpeg",
  "channels": 3,
  "hasAlpha": false,
  "colorSpace": "srgb",
  "density": 72,
  "isProgressive": false,
  "hasExif": true,
  "hasIcc": true,
  "hasXmp": false,
  "bitDepth": "8",
  "pages": 1,
  "histogram": [
    { "channel": "red", "min": 0, "max": 255, "mean": 128.45, "stdev": 52.31 },
    { "channel": "green", "min": 2, "max": 253, "mean": 115.22, "stdev": 48.76 },
    { "channel": "blue", "min": 0, "max": 250, "mean": 102.89, "stdev": 55.14 }
  ]
}