diff --git a/components/image-annotator.tsx b/components/image-annotator.tsx index 1766b4397..d06036e13 100644 --- a/components/image-annotator.tsx +++ b/components/image-annotator.tsx @@ -4,7 +4,7 @@ import React, { useRef, useState, useEffect, useCallback } from "react"; import { createPortal } from "react-dom"; import Link from "next/link"; import { useTheme } from "next-themes"; -import { X, Pencil, Circle, ArrowRight, Type, Check, Undo, Trash2, Scissors, Sparkles, Download, Expand, Move, Maximize2, ZoomIn, ZoomOut, Loader2, Move3D, Layers, Upload as UploadIcon, Image as ImageIcon, Droplet, Redo, MousePointer2 } from "lucide-react"; +import { X, Check, Undo, Trash2, Scissors, Sparkles, Download, Expand, Move, Maximize2, ZoomIn, ZoomOut, Loader2, Move3D, Layers, Upload as UploadIcon, Image as ImageIcon, Droplet, Redo, MousePointer2 } from "lucide-react"; import { Button } from "./ui/button"; import { Input } from "./ui/input"; import { Slider } from "./ui/slider"; @@ -56,20 +56,6 @@ interface ImageAnnotatorProps { onOpenChange?: (open: boolean) => void; } -const COLORS = [ - "#FF0000", // 红色 - "#FF6B00", // 橙色 - "#FFCC00", // 黄色 - "#00CC00", // 绿色 - "#0099FF", // 蓝色 - "#9933FF", // 紫色 - "#FF0099", // 粉色 - "#FFFFFF", // 白色 - "#000000", // 黑色 -]; - -const LINE_WIDTHS = [2, 4, 6, 8]; - export function ImageAnnotator({ imageUrl, onConfirm, @@ -85,9 +71,9 @@ export function ImageAnnotator({ const [ctx, setCtx] = useState(null); const [image, setImage] = useState(null); const [isDrawing, setIsDrawing] = useState(false); - const [tool, setTool] = useState("pen"); - const [color, setColor] = useState("#FF0000"); - const [lineWidth, setLineWidth] = useState(4); + const tool: Tool = "pen"; + const color = "#FF0000"; + const lineWidth = 4; const [actions, setActions] = useState([]); const [currentAction, setCurrentAction] = useState(null); const [textInput, setTextInput] = useState(""); @@ -1463,285 +1449,6 @@ export function ImageAnnotator({ )} - {/* Floating Toolbar - Top (Tools & Actions) */} - {!showSceneFusion && !isResizeMode && ( -
-
- - {!isResizeMode && ( - <> - {/* Drawing Tools */} - - - - - - 画笔 - - - - - - - 箭头 - - - - - - - 圆圈 - - - - - - - 文字 - - - -
- - {/* Colors */} -
- {COLORS.slice(0, 5).map((c) => ( -
- -
- - {/* Line Width */} -
- {LINE_WIDTHS.map((w) => ( - - ))} -
- -
- - )} - - {/* AI Actions */} - - {!isResizeMode && ( - <> - - - - - 移除背景 - - - - - - - 变清晰 - - - - - - - 图像拓展 - - - - - - - 去水印 - - -
- - - - - - 尺寸调整 - - - - - - - 角度调整 - - - - - - - 批量处理 - - -
- - )} - - {/* History */} - {!isResizeMode && ( - <> - - - - - 撤销 - - - - - - - 清空 - - - )} - -
-
- )} - {/* Main Content Area */}
{showSceneFusion ? ( @@ -1758,7 +1465,7 @@ export function ImageAnnotator({ {/* Main Canvas / Image Area */}
{isLoading ? (
@@ -2015,23 +1722,164 @@ export function ImageAnnotator({ )} {!showSceneFusion && !isResizeMode && ( -
-
- -
- +
+
+ +
+ + + + + 移除背景 + + + + + + + 变清晰 + + + + + + + 图像拓展 + + + + + + + 去水印 + + +
+ + + + + + 尺寸调整 + + + + + + + 角度调整 + + + + + + + 批量处理 + + +
+ + + + + + 撤销 + + + + + + + 清空 + +
+ + +
+ + +
)}