UNPKG

contaigents

Version:

Modular AI Content Ecosystem with Audio Generation

232 lines (191 loc) 7.41 kB
# Image Manipulation Tool - Complete Guide ## 🎨 **Overview** The **ImageManipulationTool** provides professional-grade image editing capabilities using the Sharp library - the fastest and most reliable image processing library for Node.js. This tool gives agents Photoshop-like capabilities for common image editing tasks. ## ✅ **What It Can Do (Photoshop Equivalents)** ### **Basic Operations** - ✅ **Resize** - Scale images to specific dimensions - ✅ **Crop** - Extract specific regions - ✅ **Rotate** - Rotate by any angle with background color - ✅ **Flip/Flop** - Mirror vertically or horizontally ### **Color & Tone Adjustments** - ✅ **Brightness** - Make images lighter/darker - ✅ **Contrast** - Increase/decrease contrast via levels - ✅ **Saturation** - Make colors more/less vibrant - ✅ **Hue** - Shift color tones - ✅ **Gamma** - Adjust midtone brightness - ✅ **Levels** - Linear adjustment (a * input + b) - ✅ **Auto-levels** - Automatic contrast enhancement - ✅ **Invert** - Create negative effect ### **Filters & Effects** - ✅ **Sharpen** - Enhance image details - ✅ **Blur** - Gaussian or box blur - ✅ **Median Filter** - Noise reduction - ✅ **Threshold** - Convert to black/white - ✅ **Normalize** - Stretch contrast to full range ### **Advanced Operations** - ✅ **Custom Kernels** - Apply custom convolution filters - ✅ **Color Matrix** - Advanced color transformations - ✅ **Format Conversion** - JPEG, PNG, WebP with quality control - ✅ **Batch Operations** - Multiple effects in one command ## 🚀 **Performance & Reliability** - **⚡ Speed**: Fastest image processing (uses libvips C library) - **📈 Popular**: 7M+ weekly downloads, production-proven - **🔧 Reliable**: Excellent TypeScript support, well-maintained - **💾 Memory Efficient**: Handles large images efficiently - **🌐 Cross-Platform**: Works on all major operating systems ## 🎯 **Agent Usage Examples** ### **Natural Language → Tool Operations** **User Request**: *"Resize image.jpg to 800x600 and make it brighter"* ```json { "input_path": "image.jpg", "output_path": "image_resized_bright.jpg", "operations": [ {"op": "resize", "width": 800, "height": 600}, {"op": "modulate", "brightness": 1.3} ] } ``` **User Request**: *"Crop photo.png to square and apply vintage effect"* ```json { "input_path": "photo.png", "output_path": "photo_vintage.jpg", "operations": [ {"op": "crop", "width": 500, "height": 500}, {"op": "modulate", "brightness": 0.9, "saturation": 0.7, "hue": 20}, {"op": "gamma", "gamma": 1.2}, {"op": "format", "type": "jpeg", "quality": 85} ] } ``` **User Request**: *"Convert screenshot.png to grayscale and sharpen"* ```json { "input_path": "screenshot.png", "output_path": "screenshot_sharp_bw.png", "operations": [ {"op": "modulate", "saturation": 0}, {"op": "sharpen", "sigma": 1.0}, {"op": "format", "type": "png"} ] } ``` ## 📋 **Complete Operations Reference** ### **Resize & Transform** ```json {"op": "resize", "width": 800, "height": 600, "fit": "cover|contain|fill|inside|outside"} {"op": "crop", "left": 100, "top": 50, "width": 400, "height": 300} {"op": "rotate", "angle": 90, "background": "#ffffff"} {"op": "flip"} // Mirror vertically {"op": "flop"} // Mirror horizontally ``` ### **Color & Tone** ```json {"op": "modulate", "brightness": 1.2, "saturation": 0.8, "hue": 180} {"op": "linear", "a": 1.2, "b": 10} // Levels: a * input + b {"op": "gamma", "gamma": 2.2} {"op": "normalize"} // Auto-levels {"op": "negate"} // Invert colors ``` ### **Filters & Effects** ```json {"op": "sharpen", "sigma": 1.0} {"op": "blur", "sigma": 3.0} {"op": "median", "size": 3} {"op": "threshold", "value": 128} ``` ### **Format & Quality** ```json {"op": "format", "type": "jpeg|png|webp", "quality": 90} ``` ## 🎨 **Creative Workflows** ### **Portrait Enhancement** ```json [ {"op": "resize", "width": 800, "height": 1000, "fit": "cover"}, {"op": "modulate", "brightness": 1.1, "saturation": 1.2}, {"op": "sharpen", "sigma": 0.8}, {"op": "gamma", "gamma": 1.1} ] ``` ### **Vintage Effect** ```json [ {"op": "modulate", "brightness": 0.9, "saturation": 0.7, "hue": 25}, {"op": "gamma", "gamma": 1.3}, {"op": "linear", "a": 0.9, "b": 15}, {"op": "format", "type": "jpeg", "quality": 80} ] ``` ### **High Contrast B&W** ```json [ {"op": "modulate", "saturation": 0}, {"op": "linear", "a": 1.4, "b": -20}, {"op": "normalize"}, {"op": "sharpen", "sigma": 1.2} ] ``` ### **Social Media Optimization** ```json [ {"op": "resize", "width": 1080, "height": 1080, "fit": "cover"}, {"op": "modulate", "brightness": 1.1, "saturation": 1.3}, {"op": "sharpen", "sigma": 0.6}, {"op": "format", "type": "jpeg", "quality": 92} ] ``` ## 🔧 **Technical Specifications** ### **Supported Formats** - **Input**: JPEG, PNG, WebP, AVIF, TIFF, SVG, GIF - **Output**: JPEG, PNG, WebP, AVIF, TIFF ### **Performance Metrics** - **Processing Speed**: ~10-100ms per operation (depends on image size) - **Memory Usage**: Efficient streaming processing - **File Size Limits**: Handles images up to several GB - **Concurrent Operations**: Thread-safe for parallel processing ### **Quality Settings** - **JPEG**: Quality 1-100 (recommended: 85-95) - **PNG**: Lossless compression levels - **WebP**: Quality 1-100 with better compression than JPEG ## ❌ **Current Limitations** ### **Advanced Features Not Yet Supported** - **Magic Selection** - Requires AI/ML models - **Content-Aware Fill** - Needs specialized algorithms - **Layer Blending** - Complex compositing operations - **Healing/Cloning** - Advanced inpainting techniques - **Perspective Correction** - Geometric transformations - **Advanced Noise Reduction** - Specialized denoising ### **Future Enhancement Possibilities** - **OpenCV.js Integration** - For computer vision operations - **AI Model Integration** - For intelligent selection and editing - **Custom Filter Library** - Pre-built artistic effects - **Batch Directory Processing** - Process entire folders ## 🎯 **Best Practices for Agents** ### **1. Operation Sequencing** - Apply geometric transforms (resize, crop, rotate) first - Then apply color/tone adjustments - Apply filters and effects last - Format conversion should be final step ### **2. Quality Optimization** - Use appropriate formats: JPEG for photos, PNG for graphics - Balance quality vs file size based on use case - Consider WebP for web applications (smaller files) ### **3. Performance Tips** - Resize large images early in the pipeline - Combine multiple operations in single tool call - Use appropriate fit modes for resizing ### **4. User Communication** - Describe what operations will be applied - Explain quality/size trade-offs when relevant - Suggest optimal formats for different use cases ## 🚀 **Ready for Production!** The ImageManipulationTool is **production-ready** and provides: - ✅ **80-90% of common Photoshop operations** - ✅ **Professional-grade performance and quality** - ✅ **Agent-friendly operation descriptions** - ✅ **Comprehensive error handling** - ✅ **Batch processing capabilities** - ✅ **Multiple format support** This tool transforms the agent's capabilities, enabling it to handle most image editing requests that users might have, from simple resizing to complex artistic effects!