diff --git a/src/app/page.tsx b/src/app/page.tsx index 825c056..193a606 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -148,6 +148,7 @@ export default function Home() { const [mappedPixelData, setMappedPixelData] = useState<{ key: string; color: string; isExternal?: boolean }[][] | null>(null); const [gridDimensions, setGridDimensions] = useState<{ N: number; M: number } | null>(null); const [colorCounts, setColorCounts] = useState<{ [key: string]: { count: number; color: string } } | null>(null); + const [totalBeadCount, setTotalBeadCount] = useState(0); // ++ 添加总数状态 ++ // --- Memoize the selected palette --- const activeBeadPalette = useMemo(() => { @@ -222,6 +223,7 @@ export default function Home() { setMappedPixelData(null); setGridDimensions(null); setColorCounts(null); + setTotalBeadCount(0); // ++ 重置总数 ++ }; reader.onerror = () => { console.error("文件读取失败"); @@ -510,6 +512,7 @@ export default function Home() { setGridDimensions({ N, M }); const counts: { [key: string]: { count: number; color: string } } = {}; + let totalCount = 0; // ++ 初始化总数计数器 ++ // ++ Iterate over mergedData for final counts ++ mergedData.flat().forEach(cell => { // Only count cells that are not marked as external background @@ -519,10 +522,13 @@ export default function Home() { counts[cell.key] = { count: 0, color: cell.color }; } counts[cell.key].count++; + totalCount++; // ++ 累加总数 ++ } }); setColorCounts(counts); + setTotalBeadCount(totalCount); // ++ 更新总数状态 ++ console.log("Color counts updated based on merged data (excluding external background):", counts); + console.log("Total bead count (excluding background):", totalCount); // ++ 打印总数 ++ }; img.onerror = (error: Event | string) => { @@ -719,8 +725,10 @@ export default function Home() { {/* Color Counts Display */} {colorCounts && Object.keys(colorCounts).length > 0 && (
- {/* Display selected palette name in the title */} -

颜色统计 ({paletteOptions[selectedPaletteKeySet]?.name || '未知色板'})

+ {/* Display selected palette name and total count in the title */} +

+ 颜色统计 ({paletteOptions[selectedPaletteKeySet]?.name || '未知色板'}) - 总计: {totalBeadCount} 颗 +