fix(report): move side photo preview fill upward

This commit is contained in:
xsl
2026-10-15 20:47:41 +08:00
parent 8115db4ec2
commit fbc556d1a6
3 changed files with 10 additions and 3 deletions
@@ -1,6 +1,6 @@
# 皱纹三视图标注
- 报告皱纹页卡展示正面大图和两张侧脸缩略图,并保留各自标注。正面放大沿用缩略图的裁切;侧脸放大在缩略图的填充基础上缩小50%,再向下移动缩放后图片高度的50%。大图外框不动,顶部留白按确认效果保留,报告小图不变。
- 报告皱纹页卡展示正面大图和两张侧脸缩略图,并保留各自标注。正面放大沿用缩略图的裁切;侧脸放大在缩略图的填充基础上缩小50%,净向下移动缩放后图片高度的25%(在之前下移50%的基础上先向上调20%,再向上调5%)。大图外框和报告小图不变。
- 每张照片只使用对应照片的皱纹增强图或真实标注坐标,不将正面标注投射到侧脸。
- 新检测优先复用三视图接口已提供的侧脸标注;缺失时分别以左右侧脸为主图补取,每侧最多调用一次。通常新增两次计费调用。
- 补取串行执行,每次前间隔 4 秒,每侧最多等待 20 秒;整个检测按 120 秒预算限制补取,给现有 150 秒前端超时预留余量。因此生成报告会增加等待时间。
+1 -1
View File
@@ -1816,7 +1816,7 @@
var sideButton = e.target.closest('.contour-side-photo, .wrinkle-side-photo');
var img = sideButton ? sideButton.querySelector('img') : e.target.closest('.ditem-img');
if (img && img.src && !img.hidden && img.closest('.dpanel').classList.contains('active')) {
$('#zoom-img').src = reportZoomSource(img, sideButton || img.closest('.viz-frame'), sideButton ? .5 : 1, sideButton ? .5 : 0);
$('#zoom-img').src = reportZoomSource(img, sideButton || img.closest('.viz-frame'), sideButton ? .5 : 1, sideButton ? .25 : 0);
openOverlay('p-zoom');
history.pushState({ screen: currentScreen, overlay: 'p-zoom' }, '');
}
+8 -1
View File
@@ -19,5 +19,12 @@ assert.equal(context.reportZoomSource(img,frame,.5,.5),'cropped');
assert.equal(drawn[2][2]-drawn[1][2],drawn[1][4]*.5,'move down by exactly half the scaled photo height');
assert.equal(drawn[2][1],drawn[1][1]);assert.equal(drawn[2][3],drawn[1][3]);assert.equal(drawn[2][4],drawn[1][4]);
assert.equal(canvases[2].height,canvases[1].height);
assert.equal(context.reportZoomSource(img,frame,.5,.3),'cropped');
assert(Math.abs((drawn[2][2]-drawn[3][2])-drawn[1][4]*.2)<1e-9,'move fill upward 20% from previous 50% downward offset');
assert.equal(canvases[3].height,canvases[2].height);assert.equal(drawn[3][3],drawn[2][3]);
assert.equal(context.reportZoomSource(img,frame,.5,.25),'cropped');
assert(Math.abs((drawn[3][2]-drawn[4][2])-drawn[1][4]*.05)<1e-9,'move fill upward another 5%');
assert.equal(drawn[4][3],drawn[3][3]);assert.equal(canvases[4].height,canvases[3].height);
assert(source.includes('sideButton ? .25 : 0'),'net downward offset is 25%');
assert(source.includes('sideButton ? .5 : 1'),'half-sized fill applies only to side-photo large previews');
console.log('PASS side zoom fill: size halved, then moved down exactly 50% photo height; preview frame/front/small images unchanged');
console.log('PASS side zoom fill: half size, shifted upward another5% to net downward25%; preview frame/front/small images unchanged');