Skill v1.0.1
Automated scan100/100+1 new
version: "1.0.1" name: "img-grid" description: "Use for измерения пропорций и span-ов колонок на скриншоте печатной формы (MXL). Helps точно определить границы ячеек перед генерацией макета табличного документа." argument-hint: "<ImagePath> [--cell-size 50] [--cols N] [-o OUTPUT]" allowed-tools:
- Bash
- Read
img-grid — Сетка для анализа макета
Накладывает пронумерованную сетку на изображение печатной формы. Позволяет точно определить границы колонок, их пропорции и span-ы для генерации макета MXL-документа.
Числа рисуются в отдельных полях вне изображения (верхнее и левое поля), поэтому никогда не перекрывают содержимое формы.
Использование
python3 tools/img-grid/grid.py <ImagePath> [--cell-size 50] [--cols N] [--rows N] [-o OUTPUT]
Параметры
| Параметр | Обязательный | По умолчанию | Описание | |
|---|---|---|---|---|
ImagePath | да | — | Путь к изображению (PNG, JPG) | |
--cell-size N | нет | 50 | Размер ячейки в пикселях (определяет cols/rows автоматически) | |
-c, --cols N | нет | авто | Количество вертикальных делений (перекрывает --cell-size) | |
-r, --rows N | нет | авто | Количество горизонтальных делений (0 = квадратные ячейки) | |
-o OUTPUT | нет | <name>-grid.<ext> | Путь для результата |
Зависимости
pip install Pillow
Что делает скрипт
- Добавляет поля (20 px сверху, 24 px слева) для меток — содержимое не перекрывается.
- Рисует вертикальные линии (красные) и горизонтальные (синие) по сетке.
- Каждая 5-я линия — ярче, каждая 10-я — максимально яркая (легко считать).
- Нумерует линии в полях (сверху — номера колонок, слева — номера строк).
- Сохраняет результат как RGB PNG.
Как использовать результат
1. Определить границы колонок
Смотришь на изображение с сеткой и записываешь номера вертикальных линий на границах каждой колонки таблицы.
2. Найти базовую решётку
Если на форме несколько таблиц с разной раскладкой (шапка + основная таблица), объедини все граничные точки. Каждый сегмент между соседними границами — одна базовая колонка MXL.
Пример для формы М-11 (--cols 48):
- Шапка: границы
0, 2, 4, 9, 14, 21, 28, 34, 40, 48 - Таблица: границы
0, 2, 4, 11, 16, 19, 23, 28, 32, 36, 42, 48 - Объединение:
0, 2, 4, 9, 11, 14, 16, 19, 21, 23, 28, 32, 34, 36, 40, 42, 48 - Результат: 16 базовых колонок с пропорциями
2, 2, 5, 2, 3, 2, 3, 2, 2, 5, 4, 2, 2, 4, 2, 6
3. Записать пропорции
{"columns": 16,"page": "A4-landscape","columnWidths": {"1": "2x", "2": "2x", "3": "5x", "4": "2x", "5": "3x","6": "2x", "7": "3x", "8": "2x", "9": "2x", "10": "5x","11": "4x", "12": "2x", "13": "2x", "14": "4x", "15": "2x", "16": "6x"}}
Типичный рабочий процесс (reverse-engineering MXL)
# 1. Сделать скриншот формы# 2. Наложить сетку с шагом ~50pxpython3 tools/img-grid/grid.py form-screenshot.png --cell-size 50 -o form-grid.png# 3. Изучить форму, поэкспериментировать с количеством деленийpython3 tools/img-grid/grid.py form-screenshot.png --cols 48 -o form-grid-48.png# 4. Передать агенту на анализ: назвать границы колонок по номерам
Целевые агенты
- developer-code — при работе с MXL-формой по скриншоту
- explorer / debugger — при reverse-engineering неизвестных печатных форм