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

Рушій зображень

Пакет @snapotter/image-engine обробляє всі операції із зображеннями, що не належать до AI. Він обгортає Sharp і виконується повністю в межах процесу без зовнішніх залежностей.

Операції

resize

Масштабувати зображення до конкретних розмірів або за відсотком.

ПараметрТипОпис
widthnumberЦільова ширина в пікселях
heightnumberЦільова висота в пікселях
fitstringcover, contain, fill, inside або outside
withoutEnlargementbooleanЯкщо true, не збільшуватиме менші зображення
percentagenumberМасштабувати за відсотком замість абсолютних розмірів

Можна задати width, height або обидва. Якщо задати лише один, інший обчислюється для збереження співвідношення сторін.

crop

Вирізати прямокутну область із зображення.

ПараметрТипОпис
leftnumberЗсув X від лівого краю
topnumberЗсув Y від верхнього краю
widthnumberШирина області обрізання
heightnumberВисота області обрізання
unitstringpx (за замовчуванням) або percent

rotate

Повернути зображення на заданий кут.

ПараметрТипОпис
anglenumberКут повороту в градусах (0-360)
backgroundstringКолір заливки відкритої області (за замовчуванням: #000000). Застосовується лише до кутів, відмінних від 90 градусів.

flip

Віддзеркалити зображення горизонтально, вертикально або обидва способи. Принаймні один має бути true.

ПараметрТипОпис
horizontalbooleanВіддзеркалити зліва направо
verticalbooleanВіддзеркалити зверху вниз

convert

Змінити формат зображення.

ПараметрТипОпис
formatstringЦільовий формат: jpg, png, webp, avif, tiff, gif, jxl, heic, heif, bmp, ico, jp2, qoi
qualitynumberЯкість стиснення (1-100, застосовується до форматів зі втратами)

Перші сім форматів (від jpg до jxl) кодуються Sharp у межах процесу. Решта форматів використовують зовнішні кодери на рівні API: heic/heif через heif-enc, bmp/ico через ImageMagick, jp2 через opj_compress, а qoi через вбудований кодек TypeScript.

compress

Зменшити розмір файлу, зберігаючи той самий формат.

ПараметрТипОпис
qualitynumberЦільова якість (1-100)
targetSizeBytesnumberОпціональний цільовий розмір файлу в байтах
formatstringОпціональне перевизначення формату

strip-metadata

Видалити метадані EXIF, IPTC, XMP та ICC із зображення. Без параметрів (або з stripAll: true) видаляє все. Передайте окремі прапорці для вибіркового видалення.

ПараметрТипОпис
stripAllbooleanВидалити всі метадані (за замовчуванням, коли прапорці не задано)
stripExifbooleanВидалити дані EXIF (включно з GPS, якщо stripGps не задано окремо)
stripGpsbooleanВидалити дані GPS-локації
stripIccbooleanВидалити колірний профіль ICC
stripXmpbooleanВидалити метадані XMP

Корекції кольору

Ці операції змінюють властивості кольору зображення. Кожна приймає одне числове значення.

ОпераціяПараметрДіапазонОпис
brightnessvalue-100 до 100Налаштувати яскравість
contrastvalue-100 до 100Налаштувати контраст
saturationvalue-100 до 100Налаштувати насиченість кольору

Колірні фільтри

Ці застосовують фіксоване перетворення кольору. Вони не приймають параметрів.

ОпераціяОпис
grayscaleПеретворити на відтінки сірого
sepiaЗастосувати тон сепії
invertІнвертувати всі кольори

Колірні канали

Налаштувати окремі колірні канали RGB. Значення є множниками, де 100 = без змін.

ПараметрТипОпис
rednumberМножник червоного каналу (0 до 200, 100 = без змін)
greennumberМножник зеленого каналу (0 до 200, 100 = без змін)
bluenumberМножник синього каналу (0 до 200, 100 = без змін)

sharpen

Просте підвищення різкості, кероване одним значенням.

ПараметрТипОпис
valuenumberІнтенсивність підвищення різкості (0 до 100). Зіставляється з сигмою Гауса 0.5-10.

sharpen-advanced

Розширене підвищення різкості з трьома доступними методами й опціональним попереднім проходом зменшення шуму.

ПараметрТипОпис
methodstringadaptive, unsharp-mask або high-pass
sigmanumberРадіус розмиття за Гаусом, 0.5-10 (адаптивний)
m1numberПідвищення різкості плоских областей, 0-10 (адаптивне)
m2numberПідвищення різкості текстурованих областей, 0-20 (адаптивне)
x1numberПоріг плоского/зубчастого, 0-10 (адаптивний)
y2numberМакс. освітлення (обмеження ореолу), 0-50 (адаптивне)
y3numberМакс. затемнення (обмеження ореолу), 0-50 (адаптивне)
amountnumberВідсоток інтенсивності, 0-500 (unsharp-mask)
radiusnumberРадіус розмиття, 0.1-5.0 (unsharp-mask)
thresholdnumberМінімальна яскравість краю, 0-255 (unsharp-mask)
strengthnumberСила змішування, 0-100 (high-pass)
kernelSizenumber3 або 5 для ядра 3x3 / 5x5 (high-pass)
denoisestringПопередній прохід зменшення шуму: off, light, medium або strong

Параметри залежать від методу. Надавайте лише ті, що стосуються обраного методу.

color-blindness

Симулювати порушення колірного зору за допомогою матриці рекомбінації кольорів 3x3.

ПараметрТипОпис
typestringОдин із: protanopia, deuteranopia, tritanopia, protanomaly, deuteranomaly, tritanomaly, achromatopsia, blueConeMonochromacy

edit-metadata

Записати або видалити окремі поля метаданих EXIF/IPTC без видалення всього блоку.

ПараметрТипОпис
artiststringТег EXIF Artist
copyrightstringТег EXIF Copyright
imageDescriptionstringТег EXIF ImageDescription
softwarestringТег EXIF Software
dateTimestringТег EXIF DateTime
dateTimeOriginalstringТег EXIF DateTimeOriginal
clearGpsbooleanВидалити всі теги GPS
fieldsToRemovestring[]Список імен полів EXIF для видалення

Усі параметри опціональні. Поля, перелічені в fieldsToRemove, видаляються з наявного блоку EXIF. Поля, задані через іменовані параметри, записуються (або перезаписуються). Двійкові/небезпечні ключі на кшталт MakerNote мовчки ігноруються.

Визначення формату

Рушій визначає вхідні формати автоматично за заголовками файлів, а не лише за розширеннями. Це означає, що файл .jpg, який насправді є PNG, буде оброблено правильно. Визначення використовує багаторівневий підхід: спочатку магічні байти, потім розширення файлу як резервний варіант.

SnapOtter підтримує 55+ вхідних форматів та 13 вихідних форматів, включно з 23 форматами RAW камер від 20+ брендів, професійними форматами (PSD, EPS, OpenEXR, HDR), сучасними кодеками (JPEG XL, AVIF, HEIC, QOI, JPEG 2000) та науковими/ігровими форматами (FITS, DDS). Декодування виконується Sharp нативно, де це можливо, з автоматичним переходом до ImageMagick, LibRaw та спеціалізованих CLI-декодерів.

Повний перелік дивіться на сторінці Підтримувані формати.

Витягання метаданих

Інструмент info повертає метадані зображення. Повний довідник полів дивіться в Image Info.

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