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

2.6 KiB
Raw Blame History

Тестовые скрипты для сжатия изображений

Скрипты для проверки функций сжатия аватаров с поддержкой EXIF-ориентации.

Быстрые тесты (рекомендуется для Windows)

1. Тест LDAP-сжатия (384px, 100KB, HIGH QUALITY)

python test_ldap_simple.py path/to/photo.jpg

2. Тест обычного сжатия аватаров (512px, 500KB)

python test_avatar_simple.py path/to/photo.jpg

Интерактивные тесты (с эмодзи, могут не работать в Windows cmd)

3. Полный тест LDAP

python test_ldap_image_compression.py

4. Полный тест аватаров

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