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

Moteur d'image

Le paquet @snapotter/image-engine gère toutes les opérations d'image non liées à l'IA. Il encapsule Sharp et s'exécute entièrement en cours de processus sans dépendances externes.

Opérations

resize

Met une image à l'échelle à des dimensions précises ou par pourcentage.

ParamètreTypeDescription
widthnumberLargeur cible en pixels
heightnumberHauteur cible en pixels
fitstringcover, contain, fill, inside, ou outside
withoutEnlargementbooleanSi vrai, n'agrandit pas les images plus petites
percentagenumberMettre à l'échelle par pourcentage au lieu de dimensions absolues

Vous pouvez définir width, height, ou les deux. Si vous n'en définissez qu'un seul, l'autre est calculé pour conserver le rapport hauteur/largeur.

crop

Découpe une région rectangulaire de l'image.

ParamètreTypeDescription
leftnumberDécalage X depuis le bord gauche
topnumberDécalage Y depuis le bord supérieur
widthnumberLargeur de la zone de recadrage
heightnumberHauteur de la zone de recadrage
unitstringpx (par défaut) ou percent

rotate

Fait pivoter l'image d'un angle donné.

ParamètreTypeDescription
anglenumberAngle de rotation en degrés (0-360)
backgroundstringCouleur de remplissage pour la zone exposée (par défaut : #000000). Ne s'applique qu'aux angles non multiples de 90 degrés.

flip

Met l'image en miroir horizontalement, verticalement, ou les deux. Au moins un des deux doit être vrai.

ParamètreTypeDescription
horizontalbooleanMiroir de gauche à droite
verticalbooleanMiroir de haut en bas

convert

Change le format de l'image.

ParamètreTypeDescription
formatstringFormat cible : jpg, png, webp, avif, tiff, gif, jxl, heic, heif, bmp, ico, jp2, qoi
qualitynumberQualité de compression (1-100, s'applique aux formats avec perte)

Les sept premiers formats (de jpg à jxl) sont encodés par Sharp en cours de processus. Les formats restants utilisent des encodeurs externes au niveau de l'API : heic/heif via heif-enc, bmp/ico via ImageMagick, jp2 via opj_compress, et qoi via un codec TypeScript intégré.

compress

Réduit la taille du fichier tout en conservant le même format.

ParamètreTypeDescription
qualitynumberQualité cible (1-100)
targetSizeBytesnumberTaille de fichier cible optionnelle en octets
formatstringRemplacement de format optionnel

strip-metadata

Supprime les métadonnées EXIF, IPTC, XMP et ICC de l'image. Sans paramètres (ou stripAll: true), supprime tout. Passez des indicateurs individuels pour une suppression sélective.

ParamètreTypeDescription
stripAllbooleanSupprimer toutes les métadonnées (par défaut lorsqu'aucun indicateur n'est défini)
stripExifbooleanSupprimer les données EXIF (y compris le GPS si stripGps n'est pas défini séparément)
stripGpsbooleanSupprimer les données de localisation GPS
stripIccbooleanSupprimer le profil de couleur ICC
stripXmpbooleanSupprimer les métadonnées XMP

Ajustements de couleur

Ces opérations modifient les propriétés de couleur d'une image. Chacune prend une seule valeur numérique.

OpérationParamètrePlageDescription
brightnessvalue-100 à 100Ajuster la luminosité
contrastvalue-100 à 100Ajuster le contraste
saturationvalue-100 à 100Ajuster la saturation des couleurs

Filtres de couleur

Ceux-ci appliquent une transformation de couleur fixe. Ils ne prennent aucun paramètre.

OpérationDescription
grayscaleConvertir en niveaux de gris
sepiaAppliquer une teinte sépia
invertInverser toutes les couleurs

Canaux de couleur

Ajuste les canaux de couleur RVB individuels. Les valeurs sont des multiplicateurs où 100 = aucun changement.

ParamètreTypeDescription
rednumberMultiplicateur du canal rouge (0 à 200, 100 = inchangé)
greennumberMultiplicateur du canal vert (0 à 200, 100 = inchangé)
bluenumberMultiplicateur du canal bleu (0 à 200, 100 = inchangé)

sharpen

Accentuation simple contrôlée par une seule valeur.

ParamètreTypeDescription
valuenumberIntensité de l'accentuation (0 à 100). Associée à un sigma gaussien de 0,5-10.

sharpen-advanced

Accentuation avancée avec trois méthodes sélectionnables et une pré-passe optionnelle de réduction du bruit.

ParamètreTypeDescription
methodstringadaptive, unsharp-mask, ou high-pass
sigmanumberRayon du flou gaussien, 0,5-10 (adaptatif)
m1numberAccentuation des zones planes, 0-10 (adaptatif)
m2numberAccentuation des zones texturées, 0-20 (adaptatif)
x1numberSeuil plat/dentelé, 0-10 (adaptatif)
y2numberÉclaircissement maximal (limite de halo), 0-50 (adaptatif)
y3numberAssombrissement maximal (limite de halo), 0-50 (adaptatif)
amountnumberPourcentage d'intensité, 0-500 (masque flou)
radiusnumberRayon du flou, 0,1-5,0 (masque flou)
thresholdnumberLuminosité minimale des contours, 0-255 (masque flou)
strengthnumberIntensité du mélange, 0-100 (passe-haut)
kernelSizenumber3 ou 5 pour un noyau 3x3 / 5x5 (passe-haut)
denoisestringPré-passe de réduction du bruit : off, light, medium, ou strong

Les paramètres sont propres à chaque méthode. Ne fournissez que ceux pertinents pour la méthode choisie.

color-blindness

Simule une déficience de la vision des couleurs à l'aide d'une matrice de recombinaison des couleurs 3x3.

ParamètreTypeDescription
typestringL'une de : protanopia, deuteranopia, tritanopia, protanomaly, deuteranomaly, tritanomaly, achromatopsia, blueConeMonochromacy

edit-metadata

Écrit ou supprime des champs de métadonnées EXIF/IPTC individuels sans supprimer le bloc entier.

ParamètreTypeDescription
artiststringBalise EXIF Artist
copyrightstringBalise EXIF Copyright
imageDescriptionstringBalise EXIF ImageDescription
softwarestringBalise EXIF Software
dateTimestringBalise EXIF DateTime
dateTimeOriginalstringBalise EXIF DateTimeOriginal
clearGpsbooleanSupprimer toutes les balises GPS
fieldsToRemovestring[]Liste des noms de champs EXIF à supprimer

Tous les paramètres sont optionnels. Les champs listés dans fieldsToRemove sont supprimés du bloc EXIF existant. Les champs définis via les paramètres nommés sont écrits (ou écrasés). Les clés binaires/dangereuses comme MakerNote sont ignorées silencieusement.

Détection de format

Le moteur détecte automatiquement les formats d'entrée à partir des en-têtes de fichier, et non simplement des extensions de fichier. Cela signifie qu'un fichier .jpg qui est en réalité un PNG sera traité correctement. La détection utilise une approche multicouche : d'abord les octets magiques, puis l'extension de fichier en repli.

SnapOtter prend en charge plus de 55 formats d'entrée et 13 formats de sortie, dont 23 formats RAW d'appareils photo de plus de 20 marques, des formats professionnels (PSD, EPS, OpenEXR, HDR), des codecs modernes (JPEG XL, AVIF, HEIC, QOI, JPEG 2000) et des formats scientifiques/de jeu (FITS, DDS). Le décodage est géré nativement par Sharp lorsque c'est possible, avec repli automatique sur ImageMagick, LibRaw et des décodeurs CLI spécialisés.

Consultez la page Formats pris en charge pour la liste complète.

Extraction des métadonnées

L'outil info renvoie les métadonnées de l'image. Consultez Informations sur l'image pour la référence complète des champs.

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 }
  ]
}