本次修复包含两个主要任务:
现有的图片分析维度较为基础,需要根据:
文件:image-analysis.service.ts (第19-29行)
quality: {
score: number; // 0-100分
level: 'low' | 'medium' | 'high' | 'ultra'; // 低、中、高、超高
sharpness: number; // 清晰度 0-100
brightness: number; // 亮度 0-100
contrast: number; // 对比度 0-100
detailLevel: 'minimal' | 'basic' | 'detailed' | 'ultra_detailed'; // 🔥 内容精细程度
pixelDensity: 'low' | 'medium' | 'high' | 'ultra_high'; // 🔥 像素密度等级
textureQuality: number; // 🔥 纹理质量 0-100
colorDepth: number; // 🔥 色彩深度 0-100
}
新增维度说明:
detailLevel:内容精细程度
minimal:极简图,只有基本轮廓basic:基础图,有简单纹理和色彩detailed:详细图,有丰富纹理、材质细节、光影效果ultra_detailed:超精细图,有极致纹理、真实材质、复杂光影pixelDensity:像素密度等级
low:低于720pmedium:720p及以上high:1080p及以上ultra_high:4K及以上textureQuality:纹理质量(0-100分)
colorDepth:色彩深度(0-100分)
文件:image-analysis.service.ts (第428-446行)
private calculateResolutionScore(dimensions: { width: number; height: number }): number {
const totalPixels = dimensions.width * dimensions.height;
const megapixels = totalPixels / 1000000;
// 更精细的像素分级
if (megapixels >= 33) return 98; // 8K (7680×4320)
if (megapixels >= 24) return 96; // 6K (6144×3160)
if (megapixels >= 16) return 94; // 5K (5120×2880)
if (megapixels >= 8) return 92; // 4K (3840×2160)
if (megapixels >= 6) return 88; // 2.5K+ (2560×2304)
if (megapixels >= 4) return 84; // QHD+ (2560×1600)
if (megapixels >= 2) return 78; // 1080p (1920×1080)
if (megapixels >= 1) return 68; // 720p+ (1280×720)
if (megapixels >= 0.5) return 55; // 中等分辨率
if (megapixels >= 0.3) return 40; // 低分辨率
return 25; // 极低分辨率
}
优化点:
文件:image-analysis.service.ts (第461-519行)
private async evaluateDetailLevel(
imageUrl: string,
dimensions: { width: number; height: number }
): Promise<'minimal' | 'basic' | 'detailed' | 'ultra_detailed'> {
const prompt = `请评估这张室内设计图片的内容精细程度,并返回JSON:
{
"detailLevel": "精细程度(minimal/basic/detailed/ultra_detailed)",
"textureQuality": "纹理质量评分(0-100)",
"colorDepth": "色彩深度评分(0-100)",
"reasoning": "评估理由"
}
评估标准:
- minimal: 极简图,只有基本轮廓,无细节纹理
- basic: 基础图,有简单纹理和色彩,细节较少
- detailed: 详细图,有丰富纹理、材质细节、光影效果
- ultra_detailed: 超精细图,有极致纹理、真实材质、复杂光影、细微细节
重点关注:
1. 纹理细节(木纹、布纹、石材纹理等)
2. 材质表现(金属反射、玻璃透明度、布料质感等)
3. 光影效果(阴影、高光、环境光等)
4. 细微元素(装饰品细节、边角处理等)`;
// ... AI调用逻辑
}
评估维度:
文件:image-analysis.service.ts (第370-376行)
// 🔥 综合评分:AI评分(40%) + 分辨率(30%) + 纹理质量(20%) + 色彩深度(10%)
const adjustedScore = Math.round(
result.score * 0.4 +
resolutionScore * 0.3 +
(result.textureQuality || 50) * 0.2 +
(result.colorDepth || 50) * 0.1
);
权重分配:
文件:image-analysis.service.ts (第378-386行)
console.log('📊 质量分析结果:', {
AI评分: result.score,
分辨率评分: resolutionScore,
纹理质量: result.textureQuality,
色彩深度: result.colorDepth,
综合评分: adjustedScore,
像素密度: pixelDensity,
精细程度: detailLevel
});
图片二显示的问题:
期望效果(图片一):
文件:drag-upload-modal.component.scss (第1712-1717行)
.analysis-table {
width: 100%;
min-width: 100%; // 🔥 移除最小宽度限制,让表格自适应
font-size: 11px;
display: table; // 🔥 确保表格显示
border-collapse: collapse;
}
关键修复:
display: table 确保表格显示min-width: 600px 限制文件:drag-upload-modal.component.scss (第1719-1757行)
thead {
display: table-header-group; // 🔥 确保表头显示
background: linear-gradient(135deg, #e6f7ff 0%, #f0f9ff 100%);
tr {
display: table-row;
}
th {
display: table-cell; // 🔥 确保单元格显示
padding: 8px 4px;
font-size: 11px;
white-space: nowrap;
text-align: center;
vertical-align: middle;
border-bottom: 2px solid #e6f7ff;
}
}
tbody {
display: table-row-group; // 🔥 确保表体显示
.file-row {
display: table-row; // 🔥 确保行显示
td {
display: table-cell; // 🔥 确保单元格显示
padding: 6px 4px;
vertical-align: middle;
}
}
}
关键修复:
display: table-header-groupdisplay: table-row-groupdisplay: table-rowdisplay: table-cell文件:drag-upload-modal.component.scss (第1681-1694行)
.drag-upload-modal-overlay {
align-items: flex-start;
padding: 0;
}
.drag-upload-modal-container {
width: 100vw;
max-width: 100vw;
max-height: 100vh;
height: 100vh;
margin: 0;
border-radius: 0;
position: relative;
}
优化点:
文件:drag-upload-modal.component.scss (第1736-1755行)
th {
&.col-file {
width: 50px; // 文件缩略图
}
&.col-name {
width: auto; // 文件名(自适应)
min-width: 100px;
}
&.col-upload {
width: 50px; // 上传状态
}
&.col-space {
width: 70px; // 空间识别
}
&.col-stage {
width: 70px; // 阶段识别
}
}
列宽分配:
文件:drag-upload-modal.component.scss (第1773-1861行)
// 文件预览:36px × 36px
.file-thumbnail,
.file-icon-placeholder {
width: 36px;
height: 36px;
border-radius: 4px;
}
// 删除按钮:18px × 18px
.file-delete-btn {
width: 18px;
height: 18px;
top: -6px;
right: -6px;
}
// 文件名:10px
.file-name {
font-size: 10px;
margin-bottom: 2px;
line-height: 1.2;
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
// 状态标签:9px
.status {
font-size: 9px;
padding: 2px 4px;
border-radius: 3px;
display: inline-block;
}
// AI结果:9px
.ai-result {
font-size: 9px;
padding: 2px 4px;
border-radius: 3px;
white-space: nowrap;
max-width: 60px;
overflow: hidden;
text-overflow: ellipsis;
}
尺寸优化:
文件:drag-upload-modal.component.scss (第1868-1924行)
.modal-footer {
flex-direction: column;
gap: 8px;
align-items: stretch;
padding: 10px 12px;
min-height: auto;
background: white;
border-top: 1px solid #e8e8e8;
.action-buttons {
width: 100%;
gap: 8px;
display: flex;
.cancel-btn,
.confirm-btn {
flex: 1;
padding: 12px 16px;
font-size: 14px;
border-radius: 8px;
}
}
}
优化点:
修复前:
质量评分:基于5个分辨率档位
内容分析:基础的清晰度、亮度、对比度
修复后:
质量评分:基于11个分辨率档位
内容分析:
- 像素密度等级(4档)
- 内容精细程度(4档)
- 纹理质量评分(0-100)
- 色彩深度评分(0-100)
- 综合评分算法(4维度加权)
修复前(图片二):
❌ 表格结构不显示
❌ 只有文件名和大小
❌ 缺少缩略图和状态
❌ 无法看到AI识别结果
修复后(参考图片一):
✅ 完整的表格结构
✅ 5列信息完整显示
✅ 缩略图、状态标签清晰
✅ AI识别结果可见
✅ 底部按钮完整可点击
多维度评估:
智能评分:
备选方案:
显式display属性:
display: tabledisplay: table-header-groupdisplay: table-row-groupdisplay: table-rowdisplay: table-cell响应式布局:
尺寸优化:
image-analysis.service.ts
drag-upload-modal.component.scss
cd e:\yinsanse\yss-project
ng build yss-project --base-href=/dev/yss/
obsutil rm obs://nova-cloud/dev/yss -r -f -i=XSUWJSVMZNHLWFAINRZ1 -k=P4TyfwfDovVNqz08tI1IXoLWXyEOSTKJRVlsGcV6 -e="obs.cn-south-1.myhuaweicloud.com"
obsutil sync ./dist/yss-project/ obs://nova-cloud/dev/yss -i=XSUWJSVMZNHLWFAINRZ1 -k=P4TyfwfDovVNqz08tI1IXoLWXyEOSTKJRVlsGcV6 -e="obs.cn-south-1.myhuaweicloud.com" -acl=public-read
obsutil chattri obs://nova-cloud/dev/yss -r -f -i=XSUWJSVMZNHLWFAINRZ1 -k=P4TyfwfDovVNqz08tI1IXoLWXyEOSTKJRVlsGcV6 -e="obs.cn-south-1.myhuaweicloud.com" -acl=public-read
hcloud CDN CreateRefreshTasks/v2 --cli-region="cn-north-1" --refresh_task.urls.1="https://app.fmode.cn/dev/yss/" --refresh_task.type="directory" --cli-access-key=2BFF7JWXAIJ0UGNJ0OSB --cli-secret-key=NaPCiJCGmD3nklCzX65s8mSK1Py13ueyhgepa0s1
图片分析优化:
移动端显示修复:
创建时间:2025-11-28 最后更新:2025-11-28