Fix crop bounding box logic to use most frequent crop (mode) instead of bounding box

This commit is contained in:
2026-09-17 15:27:29 +02:00
parent 6cc61baeda
commit e826801482
+2 -27
View File
@@ -44,34 +44,9 @@ namespace JellyfinPlugin
if (totalFrames == 0) return string.Empty;
var validCrops = crops.Where(kvp => (double)kvp.Value / totalFrames > 0.05).ToList();
if (!validCrops.Any())
{
validCrops = crops.OrderByDescending(kvp => kvp.Value).Take(1).ToList();
}
var bestCrop = crops.OrderByDescending(kvp => kvp.Value).FirstOrDefault().Key;
int minX = int.MaxValue, minY = int.MaxValue, maxXW = 0, maxYH = 0;
foreach (var kvp in validCrops)
{
var parts = kvp.Key.Split(':');
if (parts.Length == 4 &&
int.TryParse(parts[0], out int w) && int.TryParse(parts[1], out int h) &&
int.TryParse(parts[2], out int x) && int.TryParse(parts[3], out int y))
{
minX = Math.Min(minX, x);
minY = Math.Min(minY, y);
maxXW = Math.Max(maxXW, x + w);
maxYH = Math.Max(maxYH, y + h);
}
}
int finalW = maxXW - minX;
int finalH = maxYH - minY;
if (finalW <= 0 || finalH <= 0) return string.Empty;
return $"{finalW}:{finalH}:{minX}:{minY}";
return bestCrop ?? string.Empty;
}
}
}