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

Silnik obrazu

Pakiet @snapotter/image-engine obsługuje wszystkie operacje na obrazach niezwiązane z AI. Opakowuje Sharp i działa w całości w procesie, bez zewnętrznych zależności.

Operacje

resize

Skaluje obraz do określonych wymiarów lub o procent.

ParametrTypOpis
widthnumberDocelowa szerokość w pikselach
heightnumberDocelowa wysokość w pikselach
fitstringcover, contain, fill, inside lub outside
withoutEnlargementbooleanJeśli true, nie powiększa mniejszych obrazów
percentagenumberSkaluj o procent zamiast wymiarów bezwzględnych

Możesz ustawić width, height lub oba. Jeśli ustawisz tylko jeden, drugi jest obliczany w celu zachowania proporcji.

crop

Wytnij prostokątny obszar z obrazu.

ParametrTypOpis
leftnumberPrzesunięcie X od lewej krawędzi
topnumberPrzesunięcie Y od górnej krawędzi
widthnumberSzerokość obszaru kadrowania
heightnumberWysokość obszaru kadrowania
unitstringpx (domyślnie) lub percent

rotate

Obróć obraz o zadany kąt.

ParametrTypOpis
anglenumberKąt obrotu w stopniach (0-360)
backgroundstringKolor wypełnienia dla odsłoniętego obszaru (domyślnie: #000000). Dotyczy tylko kątów innych niż 90 stopni.

flip

Odbij obraz w poziomie, w pionie lub oba. Co najmniej jeden musi być true.

ParametrTypOpis
horizontalbooleanOdbij z lewej na prawą
verticalbooleanOdbij z góry na dół

convert

Zmień format obrazu.

ParametrTypOpis
formatstringFormat docelowy: jpg, png, webp, avif, tiff, gif, jxl, heic, heif, bmp, ico, jp2, qoi
qualitynumberJakość kompresji (1-100, dotyczy formatów stratnych)

Pierwszych siedem formatów (od jpg do jxl) jest kodowanych przez Sharp w procesie. Pozostałe formaty używają zewnętrznych koderów na warstwie API: heic/heif przez heif-enc, bmp/ico przez ImageMagick, jp2 przez opj_compress, a qoi przez wbudowany kodek TypeScript.

compress

Zmniejsz rozmiar pliku przy zachowaniu tego samego formatu.

ParametrTypOpis
qualitynumberDocelowa jakość (1-100)
targetSizeBytesnumberOpcjonalny docelowy rozmiar pliku w bajtach
formatstringOpcjonalne nadpisanie formatu

strip-metadata

Usuń metadane EXIF, IPTC, XMP i ICC z obrazu. Bez parametrów (lub z stripAll: true) usuwa wszystko. Przekaż pojedyncze flagi, aby usuwać selektywnie.

ParametrTypOpis
stripAllbooleanUsuń wszystkie metadane (domyślnie, gdy nie ustawiono flag)
stripExifbooleanUsuń dane EXIF (w tym GPS, jeśli stripGps nie jest ustawione osobno)
stripGpsbooleanUsuń dane lokalizacji GPS
stripIccbooleanUsuń profil kolorów ICC
stripXmpbooleanUsuń metadane XMP

Regulacje koloru

Te operacje modyfikują właściwości koloru obrazu. Każda przyjmuje pojedynczą wartość liczbową.

OperacjaParametrZakresOpis
brightnessvalue-100 do 100Reguluj jasność
contrastvalue-100 do 100Reguluj kontrast
saturationvalue-100 do 100Reguluj nasycenie koloru

Filtry koloru

Te stosują stałą transformację koloru. Nie przyjmują parametrów.

OperacjaOpis
grayscaleKonwertuj do skali szarości
sepiaZastosuj tonację sepii
invertOdwróć wszystkie kolory

Kanały koloru

Reguluj poszczególne kanały koloru RGB. Wartości są mnożnikami, gdzie 100 = bez zmian.

ParametrTypOpis
rednumberMnożnik kanału czerwonego (0 do 200, 100 = bez zmian)
greennumberMnożnik kanału zielonego (0 do 200, 100 = bez zmian)
bluenumberMnożnik kanału niebieskiego (0 do 200, 100 = bez zmian)

sharpen

Proste wyostrzanie sterowane pojedynczą wartością.

ParametrTypOpis
valuenumberIntensywność wyostrzania (0 do 100). Mapowana na sigmę gaussowską 0.5-10.

sharpen-advanced

Zaawansowane wyostrzanie z trzema wybieralnymi metodami i opcjonalnym przebiegiem wstępnej redukcji szumu.

ParametrTypOpis
methodstringadaptive, unsharp-mask lub high-pass
sigmanumberPromień rozmycia gaussowskiego, 0.5-10 (adaptacyjny)
m1numberWyostrzanie obszarów płaskich, 0-10 (adaptacyjne)
m2numberWyostrzanie obszarów teksturowanych, 0-20 (adaptacyjne)
x1numberPróg płaski/postrzępiony, 0-10 (adaptacyjny)
y2numberMaks. rozjaśnienie (ograniczenie aureoli), 0-50 (adaptacyjne)
y3numberMaks. przyciemnienie (ograniczenie aureoli), 0-50 (adaptacyjne)
amountnumberProcent intensywności, 0-500 (unsharp-mask)
radiusnumberPromień rozmycia, 0.1-5.0 (unsharp-mask)
thresholdnumberMinimalna jasność krawędzi, 0-255 (unsharp-mask)
strengthnumberSiła mieszania, 0-100 (high-pass)
kernelSizenumber3 lub 5 dla jądra 3x3 / 5x5 (high-pass)
denoisestringWstępny przebieg redukcji szumu: off, light, medium lub strong

Parametry są specyficzne dla metody. Podawaj tylko te istotne dla wybranej metody.

color-blindness

Symuluj zaburzenie widzenia barw za pomocą macierzy rekombinacji koloru 3x3.

ParametrTypOpis
typestringJeden z: protanopia, deuteranopia, tritanopia, protanomaly, deuteranomaly, tritanomaly, achromatopsia, blueConeMonochromacy

edit-metadata

Zapisz lub usuń poszczególne pola metadanych EXIF/IPTC bez usuwania całego bloku.

ParametrTypOpis
artiststringTag EXIF Artist
copyrightstringTag EXIF Copyright
imageDescriptionstringTag EXIF ImageDescription
softwarestringTag EXIF Software
dateTimestringTag EXIF DateTime
dateTimeOriginalstringTag EXIF DateTimeOriginal
clearGpsbooleanUsuń wszystkie tagi GPS
fieldsToRemovestring[]Lista nazw pól EXIF do usunięcia

Wszystkie parametry są opcjonalne. Pola wymienione w fieldsToRemove są usuwane z istniejącego bloku EXIF. Pola ustawione za pomocą nazwanych parametrów są zapisywane (lub nadpisywane). Klucze binarne/niebezpieczne, takie jak MakerNote, są po cichu ignorowane.

Wykrywanie formatu

Silnik wykrywa formaty wejściowe automatycznie na podstawie nagłówków plików, a nie tylko rozszerzeń plików. Oznacza to, że plik .jpg, który w rzeczywistości jest plikiem PNG, zostanie obsłużony poprawnie. Wykrywanie wykorzystuje podejście wielowarstwowe: najpierw magiczne bajty, a następnie rozszerzenie pliku jako rozwiązanie awaryjne.

SnapOtter obsługuje ponad 55 formatów wejściowych i 13 formatów wyjściowych, w tym 23 formaty RAW aparatów od ponad 20 marek, formaty profesjonalne (PSD, EPS, OpenEXR, HDR), nowoczesne kodeki (JPEG XL, AVIF, HEIC, QOI, JPEG 2000) oraz formaty naukowe/growe (FITS, DDS). Dekodowanie jest obsługiwane natywnie przez Sharp tam, gdzie to możliwe, z automatycznym rozwiązaniem awaryjnym w postaci ImageMagick, LibRaw i wyspecjalizowanych dekoderów CLI.

Zobacz stronę Obsługiwane formaty, aby uzyskać pełną listę.

Ekstrakcja metadanych

Narzędzie info zwraca metadane obrazu. Zobacz Informacje o obrazie, aby uzyskać pełny wykaz pól.

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