fix: avoid false seam rejection on scale shrink

This commit is contained in:
134 2026-07-04 11:26:29 +08:00
parent 6baeb57cde
commit 360cba0873

View File

@ -206,6 +206,8 @@ const SCALE_ADJUST_RECTANGULAR_SEAM_PAIR_RUN_RATIO = 0.11;
const SCALE_ADJUST_RECTANGULAR_SEAM_PAIR_TRANSITION_RATIO = 0.18;
const SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_RUN_RATIO = 0.1;
const SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_TRANSITION_RATIO = 0.26;
const SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_RUN_RATIO = 0.55;
const SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_TRANSITION_RATIO = 0.5;
const SUPPORTED_CANVAS_PROVIDER_TYPES = new Set([
"gemini",
@ -1147,9 +1149,26 @@ async function getScaleAdjustRectangularSeamStats(params: {
SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_RUN_RATIO &&
bestHorizontal.transitionRatio >=
SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_TRANSITION_RATIO;
const verticalVeryStrong =
bestVertical &&
bestVertical.maxRunRatio >=
SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_RUN_RATIO &&
bestVertical.transitionRatio >=
SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_TRANSITION_RATIO;
const horizontalVeryStrong =
bestHorizontal &&
bestHorizontal.maxRunRatio >=
SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_RUN_RATIO &&
bestHorizontal.transitionRatio >=
SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_TRANSITION_RATIO;
return {
detected: Boolean((verticalPair && horizontalPair) || verticalStrong || horizontalStrong),
detected: Boolean(
(verticalPair && horizontalPair) ||
(verticalStrong && horizontalStrong) ||
verticalVeryStrong ||
horizontalVeryStrong
),
horizontal: bestHorizontal,
lineStep,
protectedBoxCount: protectedBoxes.length,