Corp/backend/TEST_IMAGE_SCRIPTS.md
Игорь Надеин b5fbeca09f feat: maximize LDAP avatar quality (384px, progressive JPEG, 4:4:4)
- Увеличено разрешение: 120px -> 384px (+900% пикселей)
- Повышено качество JPEG: 50-95 -> 75-98
- Добавлен progressive JPEG для лучшего сжатия
- Включён subsampling 4:4:4 (без потери цветности)
- Добавлена обработка EXIF ориентации
- Добавлено сохранение пропорций (thumbnail вместо resize)
- Обработка прозрачности PNG

Улучшения в:
- employees/ldap/utils/image_utils.py
- employees/ldap/services/user_service.py
- employees/ldap/sync_service.py

Добавлены тестовые скрипты:
- test_ldap_simple.py (быстрый тест)
- test_avatar_simple.py (тест системного сжатия)
- TEST_IMAGE_SCRIPTS.md (документация)
2025-12-16 14:55:58 +03:00

85 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Тестовые скрипты для сжатия изображений
Скрипты для проверки функций сжатия аватаров с поддержкой EXIF-ориентации.
## Быстрые тесты (рекомендуется для Windows)
### 1. Тест LDAP-сжатия (384px, 100KB, HIGH QUALITY)
```bash
python test_ldap_simple.py path/to/photo.jpg
```
### 2. Тест обычного сжатия аватаров (512px, 500KB)
```bash
python test_avatar_simple.py path/to/photo.jpg
```
## Интерактивные тесты (с эмодзи, могут не работать в Windows cmd)
### 3. Полный тест LDAP
```bash
python test_ldap_image_compression.py
```
### 4. Полный тест аватаров
```bash
python test_image_compression.py
```
## Что проверяют скрипты
✅ **EXIF ориентация** - фото с телефонов не переворачиваются
✅ **Сжатие размера** - процент уменьшения файла
✅ **Разрешение** - размер в пикселях до и после
✅ **Лимиты** - соответствие ограничениям (100KB для LDAP, 500KB для системы)
## Примеры вывода
### test_ldap_simple.py:
```
======================================================================
LDAP Image Compression Test: IMG_1234.jpg
======================================================================
BEFORE processing:
Size: 2453.67 KB
Resolution: 3024x4032
Mode: RGB, Format: JPEG
EXIF Orientation: Rotated 90 CW
Processing with normalize_avatar_to_jpeg(size_px=384, max_kb=100)...
HIGH QUALITY: progressive JPEG, 4:4:4 subsampling, quality 75-98
Saved to: IMG_1234_ldap.jpg
AFTER processing (LDAP format):
Size: 68.45 KB
Resolution: 288x384
Mode: RGB, Format: JPEG
EXIF Orientation: Normal
LDAP Compliance Check:
[OK] File size: 68.45 KB (limit: 100 KB)
Statistics:
Size reduction: 97.2%
Before: 3024x4032 (2453.67 KB)
After: 288x384 (68.45 KB)
[OK] Orientation fixed automatically!
Was: Rotated 90 CW
Now: Normal (rotated in pixels)
======================================================================
```
## Требования
- Python 3.8+
- Django (настройки проекта)
- Pillow (PIL)
## Примечания
- Скрипты автоматически настраивают Django
- Обработанные файлы сохраняются рядом с оригиналом
- LDAP версия: суффикс `_ldap.jpg`
- Обычная версия: суффикс `_compressed.jpg`