🖼️ Система управления изображениями

Полнофункциональный редактор с возможностями обрезки, поворота и оптимизации

Загрузка и обработка

Drag & Drop загрузка с автоматической оптимизацией и конвертацией в JPEG

Редактирование

Обрезка, поворот на 90°, отражение горизонтально и вертикально

API интеграция

REST API для интеграции с любыми формами и компонентами

📋 Инструкции по использованию

Через AdminJS

1 Зайдите в админ-панель
2 Выберите "Туры" или "Гиды"
3 В поле "Image URL" укажите путь к изображению
Например: /uploads/routes/my-image.jpg

Через JavaScript

1 Подключите скрипт редактора
<script src="/js/image-editor.js"></script>
2 Откройте редактор
window.openImageEditor({ targetFolder: 'routes', // routes, guides, articles }).then(url => { console.log('Сохранено:', url); });

🔌 API Эндпоинты

Загрузка изображения
POST /api/images/upload-image

Загружает изображение во временную папку

const formData = new FormData(); formData.append('image', file); fetch('/api/images/upload-image', { method: 'POST', body: formData }).then(r => r.json());
Обработка изображения
POST /api/images/process-image

Применяет трансформации и сохраняет финальный файл

fetch('/api/images/process-image', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tempId: 'temp-123', rotation: 90, flipHorizontal: false, cropData: { x: 0, y: 0, width: 300, height: 200 }, targetFolder: 'routes' }) });
Список изображений
GET /api/images/images/{folder}

Возвращает список всех изображений в папке

// Получить изображения туров fetch('/api/images/images/routes') .then(r => r.json()) .then(data => console.log(data.images));
Удаление изображения
DELETE /api/images/image

Удаляет изображение с сервера

fetch('/api/images/image', { method: 'DELETE', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ url: '/uploads/routes/image.jpg' }) });

🧪 Тестирование системы

Попробуйте все возможности редактора изображений