diff --git a/lib/canvas/generate-image.ts b/lib/canvas/generate-image.ts index 981dd721a..e29df494e 100644 --- a/lib/canvas/generate-image.ts +++ b/lib/canvas/generate-image.ts @@ -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,