Files
SnapOtter/apps/docs/fr/api/image-engine.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
2026-07-11 13:52:47 +08:00

9.3 KiB

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
Référence des opérations du moteur d'image. Toutes les opérations de traitement d'image basées sur Sharp et leurs paramètres. 42febdf85fa8 human 0aafaaa6273a

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ètre Type Description
width number Largeur cible en pixels
height number Hauteur cible en pixels
fit string cover, contain, fill, inside, ou outside
withoutEnlargement boolean Si vrai, n'agrandit pas les images plus petites
percentage number Mettre à 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ètre Type Description
left number Décalage X depuis le bord gauche
top number Décalage Y depuis le bord supérieur
width number Largeur de la zone de recadrage
height number Hauteur de la zone de recadrage
unit string px (par défaut) ou percent

rotate

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

Paramètre Type Description
angle number Angle de rotation en degrés (0-360)
background string Couleur 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ètre Type Description
horizontal boolean Miroir de gauche à droite
vertical boolean Miroir de haut en bas

convert

Change le format de l'image.

Paramètre Type Description
format string Format cible : jpg, png, webp, avif, tiff, gif, jxl, heic, heif, bmp, ico, jp2, qoi
quality number Qualité 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ètre Type Description
quality number Qualité cible (1-100)
targetSizeBytes number Taille de fichier cible optionnelle en octets
format string Remplacement 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ètre Type Description
stripAll boolean Supprimer toutes les métadonnées (par défaut lorsqu'aucun indicateur n'est défini)
stripExif boolean Supprimer les données EXIF (y compris le GPS si stripGps n'est pas défini séparément)
stripGps boolean Supprimer les données de localisation GPS
stripIcc boolean Supprimer le profil de couleur ICC
stripXmp boolean Supprimer 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ération Paramètre Plage Description
brightness value -100 à 100 Ajuster la luminosité
contrast value -100 à 100 Ajuster le contraste
saturation value -100 à 100 Ajuster la saturation des couleurs

Filtres de couleur

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

Opération Description
grayscale Convertir en niveaux de gris
sepia Appliquer une teinte sépia
invert Inverser toutes les couleurs

Canaux de couleur

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

Paramètre Type Description
red number Multiplicateur du canal rouge (0 à 200, 100 = inchangé)
green number Multiplicateur du canal vert (0 à 200, 100 = inchangé)
blue number Multiplicateur du canal bleu (0 à 200, 100 = inchangé)

sharpen

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

Paramètre Type Description
value number Intensité 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ètre Type Description
method string adaptive, unsharp-mask, ou high-pass
sigma number Rayon du flou gaussien, 0,5-10 (adaptatif)
m1 number Accentuation des zones planes, 0-10 (adaptatif)
m2 number Accentuation des zones texturées, 0-20 (adaptatif)
x1 number Seuil plat/dentelé, 0-10 (adaptatif)
y2 number Éclaircissement maximal (limite de halo), 0-50 (adaptatif)
y3 number Assombrissement maximal (limite de halo), 0-50 (adaptatif)
amount number Pourcentage d'intensité, 0-500 (masque flou)
radius number Rayon du flou, 0,1-5,0 (masque flou)
threshold number Luminosité minimale des contours, 0-255 (masque flou)
strength number Intensité du mélange, 0-100 (passe-haut)
kernelSize number 3 ou 5 pour un noyau 3x3 / 5x5 (passe-haut)
denoise string Pré-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ètre Type Description
type string L'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ètre Type Description
artist string Balise EXIF Artist
copyright string Balise EXIF Copyright
imageDescription string Balise EXIF ImageDescription
software string Balise EXIF Software
dateTime string Balise EXIF DateTime
dateTimeOriginal string Balise EXIF DateTimeOriginal
clearGps boolean Supprimer toutes les balises GPS
fieldsToRemove string[] 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.

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