Proje: Okul B2B App · Hub: Okul B2B App — Conventions

Görsel Sıkıştırma Konfigürasyonu

utils/ImageCompressor.ts — Medya yüklemeden önce görsel optimizasyonu.

Konfigürasyon

IMAGE_COMPRESSION_CONFIG = {
  MAX_FILE_SIZE: 3MB,           // Sıkıştırma eşiği
  QUALITY_LEVELS: [0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3],  // Sırayla denenir
  MAX_DIMENSION: 2048px,        // Maksimum genişlik/yükseklik
  JPEG_FORMAT: SaveFormat.JPEG,
}

Akış

  1. needsCompression(uri) → 3MB üzerindeyse true
  2. compressImage(uri) → quality 0.9’dan başlayarak 3MB altına inene kadar dener
  3. Boyut bilgisi Toast ile gösterilir: "Boyut: 5.2MB → 2.1MB"
  4. Sıkıştırma başarısız olursa orijinal URI kullanılır (graceful fallback)

Kütüphane

expo-image-manipulator + expo-file-system