Package-level declarations

Types

Link copied to clipboard
data class CompressedImage(val bytes: ByteArray, val originalSize: Int, val compressedSize: Int, val mimeType: String, val metadata: CompressionMetadata? = null)
Link copied to clipboard
data class CompressionAnalytics(val sessionId: String, val platform: String, val originalSize: Int, val targetSize: Int, val actualSize: Int, val predictedQuality: Int, val actualQuality: Int, val compressionRatio: Double, val targetAccuracy: Double, val imageComplexity: ImageComplexity, val dimensions: Pair<Int, Int>, val iterations: Int, val elapsedMillis: Long, val success: Boolean)

Comprehensive analytics for compression operations to improve accuracy

Link copied to clipboard
sealed class CompressionConfig
Link copied to clipboard
data class CompressionMetadata(val effectiveQualityPercent: Float?, val iterations: Int, val elapsedMillis: Long, val estimatedQuality: Int? = null, val searchRange: IntRange? = null, val engineUsed: String? = null)
Link copied to clipboard
data class ImageComplexity(val pixelDensity: Double, val aspectRatio: Double, val megapixels: Double, val compressionDifficulty: CompressionDifficulty)

Image complexity metrics for better quality prediction

Link copied to clipboard
actual object ImageCompressor

ENHANCED ANDROID COMPRESSION with Analytics and Calibrated Quality Prediction Focus: Target size accuracy within 0-30% above target, never below New: Comprehensive logging, image complexity analysis, platform-specific tuning

expect object ImageCompressor
actual object ImageCompressor
actual object ImageCompressor
actual object ImageCompressor
Link copied to clipboard
data class ImageData(val rawBytes: ByteArray, val mimeType: String)
Link copied to clipboard
data class ResizeOptions(val maxLongEdgePx: Int? = 2560, val downscaleOnly: Boolean = true, val maintainAspectRatio: Boolean = true)

Optional resizing prior to compression to improve ratios and UX across desktop and mobile.

Functions

Link copied to clipboard
external fun jsEncodeWebPBase64(b64: String, mime: String, quality: Int, maxLongEdgePx: Int?, cb: (String) -> Unit)
Link copied to clipboard
external fun nowMs(): Double