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ış
needsCompression(uri)→ 3MB üzerindeysetruecompressImage(uri)→ quality 0.9’dan başlayarak 3MB altına inene kadar dener- Boyut bilgisi Toast ile gösterilir:
"Boyut: 5.2MB → 2.1MB" - 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
Related
- medya-yukleme-akisi — sıkıştırmanın upload akışındaki yeri
- galeri-yonetimi — galeri context’i