feat(tools): implement advanced brush tools - Clone Stamp, Smudge, and Dodge/Burn
Added three professional-grade image manipulation tools to complete Feature 4: Clone Stamp Tool (Shortcut: 8) - Sample from source location with Alt+Click - Paint sampled content to destination - Maintains relative offset for natural cloning - Supports soft/hard brush with hardness setting Smudge Tool (Shortcut: 9) - Creates realistic paint-smearing effects - Progressively blends colors for natural smudging - Uses flow setting to control smudge strength - Soft brush falloff for smooth blending Dodge/Burn Tool (Shortcut: 0) - Dodge mode: Lightens image areas (default) - Burn mode: Darkens image areas (Alt key) - Professional photography exposure adjustment - Respects hardness setting for precise control All tools: - Fully integrated with tool palette and keyboard shortcuts - Support smooth interpolation for fluid strokes - Use existing tool settings (size, opacity, hardness, flow, spacing) - Lazy-loaded via code splitting system - Icons from Lucide React (Stamp, Droplet, Sun) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -93,6 +93,21 @@ async function loadTool(toolKey: string): Promise<BaseTool> {
|
||||
tool = new TextTool();
|
||||
break;
|
||||
}
|
||||
case 'clone': {
|
||||
const { CloneStampTool } = await import('@/tools/clone-stamp-tool');
|
||||
tool = new CloneStampTool();
|
||||
break;
|
||||
}
|
||||
case 'smudge': {
|
||||
const { SmudgeTool } = await import('@/tools/smudge-tool');
|
||||
tool = new SmudgeTool();
|
||||
break;
|
||||
}
|
||||
case 'dodge': {
|
||||
const { DodgeBurnTool } = await import('@/tools/dodge-burn-tool');
|
||||
tool = new DodgeBurnTool();
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
// Fallback to pencil tool
|
||||
const { PencilTool } = await import('@/tools/pencil-tool');
|
||||
|
||||
Reference in New Issue
Block a user