feat: add geometry masks

This commit is contained in:
2026-08-26 12:31:44 +05:00
parent d65adcd16c
commit 84cc56cc6c
7 changed files with 517 additions and 19 deletions
+63
View File
@@ -660,6 +660,69 @@ export const ru: Dict = {
offsetY: 'Смещение Y, %'
}
},
'trim-empty-space-png': {
title: 'Обрезать пустые поля PNG',
description:
'Обрезает прозрачные рамки вокруг содержимого. Пиксели с альфой выше порога считаются содержимым.',
params: { threshold: 'Порог альфы' }
},
'change-canvas-size-png': {
title: 'Изменить размер холста PNG',
description:
'Задаёт точный размер холста: лишнее обрезается, недостающее дополняется прозрачностью. Якорь выбирает, какая часть изображения остаётся.',
params: { width: 'Ширина', height: 'Высота', anchor: 'Якорь' },
options: {
anchor: {
'top-left': 'Сверху слева',
'top-center': 'Сверху по центру',
'top-right': 'Сверху справа',
'middle-left': 'По центру слева',
center: 'По центру',
'middle-right': 'По центру справа',
'bottom-left': 'Снизу слева',
'bottom-center': 'Снизу по центру',
'bottom-right': 'Снизу справа'
}
}
},
'change-aspect-ratio-png': {
title: 'Изменить соотношение сторон PNG',
description:
'Вписывает изображение в целевое соотношение сторон: обрезать центр до заполнения или дополнить прозрачностью.',
params: { ratio: 'Целевое отношение', mode: 'Режим' },
options: {
ratio: {
'1:1': '1:1',
'4:3': '4:3',
'3:4': '3:4',
'3:2': '3:2',
'2:3': '2:3',
'16:9': '16:9',
'9:16': '9:16'
},
mode: { crop: 'Обрезать до заполнения', pad: 'Дополнить до вписывания' }
}
},
'swap-orientation-png': {
title: 'Поменять ориентацию PNG',
description:
'Поворачивает изображение на 90°, если ориентация отличается от целевой — ландшафт становится портретом и наоборот. Квадрат не трогается.',
params: { target: 'Целевая ориентация' },
options: { target: { portrait: 'Портрет', landscape: 'Ландшафт' } }
},
'symmetric-copy-png': {
title: 'Симметричная копия PNG',
description:
'Удваивает холст, зеркалируя сохранённую половину на пустую — мгновенный симметричный узор.',
params: { axis: 'Линия зеркала', keepSide: 'Какая сторона остаётся' },
options: {
axis: {
vertical: 'Вертикальная (ширина ×2)',
horizontal: 'Горизонтальная (высота ×2)'
},
keepSide: { left: 'Левая', right: 'Правая', top: 'Верхняя', bottom: 'Нижняя' }
}
},
'show-transparent-png': {
title: 'Показать прозрачные области PNG',
description: