react-native-rectangle-doc-scanner 4.11.0 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -595,12 +595,20 @@ class CameraController(
|
|
|
595
595
|
val highResSizes = capped.filter { it.width * it.height >= minAcceptableArea }
|
|
596
596
|
val pool = if (highResSizes.isNotEmpty()) highResSizes else capped
|
|
597
597
|
|
|
598
|
+
// Debug: log aspect ratio diff for each size
|
|
599
|
+
pool.forEach { size ->
|
|
600
|
+
val diff = aspectDiff(size)
|
|
601
|
+
Log.d(TAG, "[SIZE_SELECTION] ${size.width}x${size.height} aspect=${size.width.toDouble()/size.height} diff=$diff")
|
|
602
|
+
}
|
|
603
|
+
|
|
598
604
|
val bestDiff = pool.minOf { aspectDiff(it) }
|
|
599
|
-
//
|
|
600
|
-
val close = pool.filter { aspectDiff(it) <= bestDiff + 0.
|
|
605
|
+
// Use very tight tolerance (0.001) to get only the best aspect ratio matches
|
|
606
|
+
val close = pool.filter { aspectDiff(it) <= bestDiff + 0.001 }
|
|
601
607
|
|
|
602
|
-
//
|
|
603
|
-
|
|
608
|
+
// Among best aspect ratio matches, prefer higher resolution
|
|
609
|
+
val selected = close.maxByOrNull { it.width * it.height } ?: pool.maxByOrNull { it.width * it.height }
|
|
610
|
+
Log.d(TAG, "[SIZE_SELECTION] Best aspect diff: $bestDiff, candidates: ${close.size}, selected: ${selected?.width}x${selected?.height}")
|
|
611
|
+
return selected
|
|
604
612
|
}
|
|
605
613
|
|
|
606
614
|
val matching = capped.filter { aspectDiff(it) <= ANALYSIS_ASPECT_TOLERANCE }
|