@ImgPress
🖼️ ImgPress — Надежный инструмент для сжатия изображений
Простой, но очень надежный PHP скрипт для поиска, сжатия изображений с предпросмотром и управлением бэкапами.
✨ Возможности
- 🔐 Авторизация — защита доступа с помощью логина и пароля
- 🔍 Поиск изображений — рекурсивный поиск изображений в указанной директории
- 📁 Файловый менеджер — удобный выбор директорий с выпадающим списком и хлебными крошками
- 🖼️ Информация об изображениях — отображение размера файла и разрешения для каждого изображения
- 🗜️ Сжатие изображений — оптимизация JPEG, PNG, GIF и WebP
- 👁️ Предпросмотр — сравнение изображений до и после сжатия
- 📊 Статистика — детальная статистика по обработанным файлам
- 💾 Система бэкапов — автоматическое создание резервных копий
- 🔄 Восстановление — восстановление оригинальных файлов из бэкапов
- 🧹 Управление бэкапами — просмотр, восстановление и очистка бэкапов
📋 Требования
- PHP 7.4 или выше
- Расширение GD (обычно включено по умолчанию)
- Веб-сервер (Apache, Nginx, или встроенный PHP сервер)
🚀 Установка
- Скопируйте все файлы в директорию вашего веб-сервера
- Убедитесь, что PHP имеет права на запись в директорию проекта
- Измените пароль по умолчанию в файле
auth.php(логин:admin, пароль:admin123) - Откройте
login.phpв браузере для входа в систему
📁 Структура файлов
@ImgPress/
├── index.php # Главный интерфейс
├── api.php # API для обработки запросов
├── ImageProcessor.php # Класс для обработки изображений
├── config.php # Конфигурация
├── script.js # JavaScript для интерфейса
├── style.css # Стили
├── backups/ # Директория для бэкапов (создается автоматически)
├── stats.json # Статистика (создается автоматически)
└── backups_meta.json # Метаданные бэкапов (создается автоматически)
🎯 Использование
Авторизация
- Откройте
login.phpв браузере - Введите логин и пароль (по умолчанию:
admin/admin123) - После успешного входа вы будете перенаправлены на главную страницу
Поиск и сжатие изображений
- Откройте вкладку "Сжатие"
- Выберите директорию одним из способов:
- Используйте выпадающий список для выбора директории
- Используйте хлебные крошки для навигации по папкам
- Введите путь вручную в текстовое поле
- Выберите опции:
- Рекурсивный поиск — поиск во вложенных папках
- Создавать бэкапы — автоматическое создание резервных копий
- Нажмите "Найти изображения"
- Просмотрите найденные изображения с информацией о размере и разрешении
- Выберите изображения для сжатия
- Нажмите "Сжать выбранные"
Просмотр статистики
- Откройте вкладку "Статистика"
- Просмотрите общую статистику:
- Количество обработанных файлов
- Высвобожденное место
- Средний процент сжатия
- Просмотрите детальную информацию по каждому файлу
Управление бэкапами
- Откройте вкладку "Бэкапы"
- Просмотрите список всех бэкапов
- Используйте кнопки:
- Восстановить — восстановить оригинальный файл
- Удалить — удалить бэкап
- Очистить все бэкапы — удалить все бэкапы
Предпросмотр
- Кликните на изображение в списке для предпросмотра
- Для обработанных файлов доступно сравнение "до" и "после"
⚙️ Настройки
Все настройки находятся в файле config.php:
// Качество сжатия
define('JPEG_QUALITY', 85); // JPEG (0-100)
define('PNG_QUALITY', 9); // PNG (0-9)
define('WEBP_QUALITY', 85); // WebP (0-100)
// Размеры предпросмотра
define('PREVIEW_MAX_SIZE', 800); // Максимальный размер предпросмотра
define('THUMBNAIL_SIZE', 200); // Размер миниатюр
// Ограничения
define('MAX_FILE_SIZE', 50 * 1024 * 1024); // Максимальный размер файла (50MB)
🔒 Безопасность
- Все пути проверяются на безопасность
- Доступ только к файлам в пределах проекта
- Валидация типов файлов
- Защита от path traversal атак
📝 Поддерживаемые форматы
- JPEG/JPG
- PNG
- GIF
- WebP
🐛 Решение проблем
Ошибка "Не удалось создать бэкап"
- Проверьте права на запись в директорию проекта
- Убедитесь, что директория
backups/существует и доступна для записи
Изображения не находятся
- Проверьте правильность пути к директории
- Убедитесь, что расширение GD установлено:
php -m | grep gd - Проверьте права на чтение директории
Ошибки сжатия
- Убедитесь, что файл не поврежден
- Проверьте размер файла (максимум 50MB по умолчанию)
- Убедитесь, что формат файла поддерживается
📄 Лицензия
Свободное использование. Создано для удобства работы с изображениями.
🤝 Поддержка
При возникновении проблем проверьте:
- Логи PHP ошибок
- Права доступа к файлам и директориям
- Настройки веб-сервера
Создано с ❤️ для эффективной работы с изображениями