Search K
Bildmotor
Paketet @snapotter/image-engine hanterar alla bildoperationer som inte är AI-baserade. Det omsluter Sharp och körs helt i processen utan externa beroenden.
Operationer
resize
Skala en bild till specifika dimensioner eller med procentandel.
| Parameter | Typ | Beskrivning |
|---|---|---|
width | number | Målbredd i pixlar |
height | number | Målhöjd i pixlar |
fit | string | cover, contain, fill, inside eller outside |
withoutEnlargement | boolean | Om sant kommer mindre bilder inte att skalas upp |
percentage | number | Skala med procentandel i stället för absoluta dimensioner |
Du kan ange width, height eller båda. Om du bara anger den ena beräknas den andra för att bibehålla bildförhållandet.
crop
Klipp ut ett rektangulärt område från bilden.
| Parameter | Typ | Beskrivning |
|---|---|---|
left | number | X-förskjutning från vänsterkanten |
top | number | Y-förskjutning från överkanten |
width | number | Bredd på beskärningsområdet |
height | number | Höjd på beskärningsområdet |
unit | string | px (standard) eller percent |
rotate
Rotera bilden med en angiven vinkel.
| Parameter | Typ | Beskrivning |
|---|---|---|
angle | number | Rotationsvinkel i grader (0-360) |
background | string | Fyllnadsfärg för exponerat område (standard: #000000). Gäller endast vinklar som inte är 90 grader. |
flip
Spegla bilden horisontellt, vertikalt eller båda. Minst en måste vara sann.
| Parameter | Typ | Beskrivning |
|---|---|---|
horizontal | boolean | Spegla från vänster till höger |
vertical | boolean | Spegla från topp till botten |
convert
Ändra bildformatet.
| Parameter | Typ | Beskrivning |
|---|---|---|
format | string | Målformat: jpg, png, webp, avif, tiff, gif, jxl, heic, heif, bmp, ico, jp2, qoi |
quality | number | Komprimeringskvalitet (1-100, gäller förlustbehäftade format) |
De första sju formaten (jpg till och med jxl) kodas av Sharp i processen. De återstående formaten använder externa kodare på API-lagret: heic/heif via heif-enc, bmp/ico via ImageMagick, jp2 via opj_compress och qoi via en inbäddad TypeScript-codec.
compress
Minska filstorleken samtidigt som samma format behålls.
| Parameter | Typ | Beskrivning |
|---|---|---|
quality | number | Målkvalitet (1-100) |
targetSizeBytes | number | Valfri målfilstorlek i byte |
format | string | Valfri åsidosättning av format |
strip-metadata
Ta bort EXIF-, IPTC-, XMP- och ICC-metadata från bilden. Utan parametrar (eller stripAll: true) tas allt bort. Skicka enskilda flaggor för selektiv borttagning.
| Parameter | Typ | Beskrivning |
|---|---|---|
stripAll | boolean | Ta bort all metadata (standard när inga flaggor är satta) |
stripExif | boolean | Ta bort EXIF-data (inklusive GPS om stripGps inte är separat satt) |
stripGps | boolean | Ta bort GPS-platsdata |
stripIcc | boolean | Ta bort ICC-färgprofil |
stripXmp | boolean | Ta bort XMP-metadata |
Färgjusteringar
Dessa operationer ändrar en bilds färgegenskaper. Var och en tar ett enda numeriskt värde.
| Operation | Parameter | Intervall | Beskrivning |
|---|---|---|---|
brightness | value | -100 till 100 | Justera ljusstyrka |
contrast | value | -100 till 100 | Justera kontrast |
saturation | value | -100 till 100 | Justera färgmättnad |
Färgfilter
Dessa tillämpar en fast färgtransformation. De tar inga parametrar.
| Operation | Beskrivning |
|---|---|
grayscale | Konvertera till gråskala |
sepia | Tillämpa en sepiaton |
invert | Invertera alla färger |
Färgkanaler
Justera enskilda RGB-färgkanaler. Värden är multiplikatorer där 100 = ingen förändring.
| Parameter | Typ | Beskrivning |
|---|---|---|
red | number | Multiplikator för röd kanal (0 till 200, 100 = oförändrad) |
green | number | Multiplikator för grön kanal (0 till 200, 100 = oförändrad) |
blue | number | Multiplikator för blå kanal (0 till 200, 100 = oförändrad) |
sharpen
Enkel skärpning som styrs av ett enda värde.
| Parameter | Typ | Beskrivning |
|---|---|---|
value | number | Skärpningsintensitet (0 till 100). Mappas till ett gaussiskt sigma på 0,5-10. |
sharpen-advanced
Avancerad skärpning med tre valbara metoder och ett valfritt förpass för brusreducering.
| Parameter | Typ | Beskrivning |
|---|---|---|
method | string | adaptive, unsharp-mask eller high-pass |
sigma | number | Radie för gaussisk oskärpa, 0,5-10 (adaptiv) |
m1 | number | Skärpning av jämna ytor, 0-10 (adaptiv) |
m2 | number | Skärpning av texturerade ytor, 0-20 (adaptiv) |
x1 | number | Tröskel för jämnt/ojämnt, 0-10 (adaptiv) |
y2 | number | Max upplysning (halobegränsning), 0-50 (adaptiv) |
y3 | number | Max nedmörkning (halobegränsning), 0-50 (adaptiv) |
amount | number | Intensitetsprocent, 0-500 (unsharp-mask) |
radius | number | Oskärperadie, 0,1-5,0 (unsharp-mask) |
threshold | number | Minsta kantljusstyrka, 0-255 (unsharp-mask) |
strength | number | Blandningsstyrka, 0-100 (high-pass) |
kernelSize | number | 3 eller 5 för 3x3-/5x5-kärna (high-pass) |
denoise | string | Förpass för brusreducering: off, light, medium eller strong |
Parametrarna är metodspecifika. Ange endast de som är relevanta för den valda metoden.
color-blindness
Simulera en färgseendedefekt med hjälp av en 3x3-matris för färgrekombination.
| Parameter | Typ | Beskrivning |
|---|---|---|
type | string | En av: protanopia, deuteranopia, tritanopia, protanomaly, deuteranomaly, tritanomaly, achromatopsia, blueConeMonochromacy |
edit-metadata
Skriv eller ta bort enskilda EXIF-/IPTC-metadatafält utan att ta bort hela blocket.
| Parameter | Typ | Beskrivning |
|---|---|---|
artist | string | EXIF Artist-tagg |
copyright | string | EXIF Copyright-tagg |
imageDescription | string | EXIF ImageDescription-tagg |
software | string | EXIF Software-tagg |
dateTime | string | EXIF DateTime-tagg |
dateTimeOriginal | string | EXIF DateTimeOriginal-tagg |
clearGps | boolean | Ta bort alla GPS-taggar |
fieldsToRemove | string[] | Lista över EXIF-fältnamn att radera |
Alla parametrar är valfria. Fält som listas i fieldsToRemove raderas från det befintliga EXIF-blocket. Fält som anges via de namngivna parametrarna skrivs (eller skrivs över). Binära/osäkra nycklar som MakerNote ignoreras tyst.
Formatidentifiering
Motorn identifierar automatiskt indataformat från filhuvuden, inte bara från filändelser. Det innebär att en .jpg-fil som egentligen är en PNG hanteras korrekt. Identifieringen använder en flerlagersansats: magiska byte först, sedan filändelse som reserv.
SnapOtter stöder 55+ indataformat och 13 utdataformat, inklusive 23 kamera-RAW-format från 20+ märken, professionella format (PSD, EPS, OpenEXR, HDR), moderna codecs (JPEG XL, AVIF, HEIC, QOI, JPEG 2000) och vetenskapliga/spelrelaterade format (FITS, DDS). Avkodning hanteras nativt av Sharp där det är möjligt, med automatisk reserv till ImageMagick, LibRaw och specialiserade CLI-avkodare.
Se sidan Format som stöds för den fullständiga listan.
Metadatautvinning
Verktyget info returnerar bildmetadata. Se Bildinfo för den fullständiga fältreferensen.
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 }
]
}