Implementing Syncfusion React Image Editor
The Syncfusion React Image Editor is a comprehensive, feature-rich component for editing images directly in your React applications. It provides an intuitive interface with powerful tools for transformations, annotations, effects, and more.
Component Overview
The Image Editor combines a canvas-based editing environment with a comprehensive toolbar and contextual tools. It supports:
- Multiple Input Sources: Files, URLs, base64, blobs, file managers, treeviews
- Rich Annotation Support: Text (with styling), shapes, freehand drawings, watermarks
- Professional Effects: Filters and fine-tuning controls
- Advanced Operations: Z-order management, redaction, frame decoration
- Accessibility First: Full keyboard navigation, WCAG compliance, RTL support, 120+ localization keys
- Flexible Integration: Standalone or within dialogs, with customizable toolbars
Documentation and Navigation Guide
🔹 API Reference
📄 Read: references/api.md
- Complete API documentation with all properties, methods, and events
- Properties overview (core, toolbar, settings)
- Methods for image operations, transformations, annotations
- Events for lifecycle, interactions, effects, and toolbars
- Enums and type definitions (ArrowheadType, FrameType, RedactType, etc.)
- Complete working examples with verified method signatures
Getting Started
📄 Read: references/getting-started.md
- Installation with Vite and create-react-app
- CSS imports and theme setup
- Basic component initialization
- Setting width, height, and initial rendering
Opening and Saving Images
📄 Read: references/opening-saving-images.md
- Open from file paths, URLs, base64 strings, blobs
- Open from file uploader, file manager, and treeview
- Save/export as PNG, JPEG, SVG, WEBP
- Image dimensions and aspect ratio control
- File opened, saving, and lifecycle events
Selection and Cropping
📄 Read: references/selection-cropping.md
- Insert custom, square, and circle selections
- Crop with aspect ratios (2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 5:7, 7:5, 9:16, 16:9)
- Crop method and selection events
- Maintain original image size during cropping
- Lock selection area during resizing
Transform: Rotate, Flip, and Straighten
📄 Read: references/transform-rotate-flip.md
- Rotate clockwise/counter-clockwise by degrees
- Flip horizontally and vertically
- Straighten images with fine degree adjustments (-45° to +45°)
- Transform annotations along with image
- Rotating and flipping events
Zoom and Pan Operations
📄 Read: references/zooming-panning.md
- Zoom in/out with configurable min/max factors
- Pan when zoomed or during cropping
- Zoom triggers (toolbar, pinch, mouse wheel, keyboard)
- Zooming and panning events
- Zoom point calculations
Text Annotations
📄 Read: references/text-annotations.md
- Add text with position, content, and font settings
- Text styling (bold, italic, underline, strikethrough)
- Font families, sizes, and colors
- Multiline text with newline characters
- Delete text annotations
- Customize font color via shapeChanging event
Freehand Drawing
📄 Read: references/freehand-drawing.md
- Enable/disable freehand drawing mode
- Customize stroke width and color
- Delete freehand annotations
- Adjust stroke during drawing via shapeChanging event
Shape Annotations
📄 Read: references/shape-annotations.md
- Draw rectangles, ellipses, lines, arrows, and paths
- Customize shapes with stroke color, stroke width, and fill color
- Rotate shapes with degree parameter
- Delete shape annotations
- Customize default stroke colors
- Shape changing and customization events
Image Annotations
📄 Read: references/image-annotations.md
- Add images or icons as annotations
- Control position, size, rotation, and opacity
- Aspect ratio preservation
- Watermarks and decorative elements
Filters
📄 Read: references/filters.md
- Apply predefined filters (Chrome, Cold, Warm, Grayscale, Sepia, Invert)
- Image filtering event
- Reset filter to original
Fine-Tuning
📄 Read: references/finetune.md
- Adjust brightness, contrast, saturation
- Control hue, exposure, blur, opacity
- Finetune value changing events
- Real-time adjustments with sliders
Undo and Redo
📄 Read: references/undo-redo.md
- Undo/redo operations with 16-step history
- Keyboard shortcuts (Ctrl+Z, Ctrl+Y)
- History management and limits
Toolbar Customization
📄 Read: references/toolbar-customization.md
- Built-in toolbar items (20+ default tools)
- Add, remove, enable, disable toolbar items
- Custom toolbar items with event handlers
- Contextual toolbar for annotations
- Toolbar templates for complete customization
- Toolbar created and item clicked events
Quick Access Toolbar
📄 Read: references/quick-access-toolbar.md
- Quick access toolbar for annotations
- Show/hide quick access toolbar
- Add custom items to quick access toolbar
- Quick access toolbar open event
Resize Image
📄 Read: references/resize-image.md
- Resize with or without aspect ratio
- Width and height parameters
- Resizing event with before/after dimensions
Frame Decoration
📄 Read: references/frame-decoration.md
- Apply frames (Mat, Bevel, Line, Inset, Hook)
- Customize frame color, size, and line style
- Frame changing event
Z-Order Layering
📄 Read: references/z-order-layering.md
- Bring forward/send backward annotations
- Bring to front/send to back
- Manage annotation layer order
Redact Sensitive Information
📄 Read: references/redact-sensitive-info.md
- Blur sensitive areas
- Pixelate sensitive information
- Redact CRUD operations (select, update, delete, get)
- Privacy and compliance
Accessibility and Localization
📄 Read: references/accessibility-localization.md
- WCAG 2.2, Section 508 compliance
- Screen reader support
- Keyboard shortcuts (Ctrl+Z, Ctrl+S, Ctrl+O, Delete, Enter, Escape)
- RTL language support
- Localization with 120+ locale keys
Image Restrictions and Validation
📄 Read: references/image-restrictions-validation.md
- Allowed file extensions (.jpg, .png, .svg, .webp, .bmp)
- Min and max file size restrictions
- File validation and error alerts
Clear Image
📄 Read: references/clear-image.md
- Clear editor state
- Dialog reuse patterns
- Remove previously loaded images
Fit to Width and Height
📄 Read: references/fit-width-height.md
- Fit image to editor container width
- Fit image to editor container height
- Zoom calculations for perfect fit
Render in Dialog
📄 Read: references/render-in-dialog.md
- Render Image Editor within Dialog component
- Content template integration
- Dialog show/hide patterns
Reset Image
📄 Read: references/reset-image.md
- Reset all modifications to original state
- Restore unmodified version
- Clear annotations and effects
Quick Start Example
import { ImageEditorComponent } from '@syncfusion/ej2-react-image-editor';
import React from 'react';
function App() {
let imgObj: ImageEditorComponent;
function imageEditorCreated(): void {
imgObj.open('https://ej2.syncfusion.com/react/documentation/image-editor/images/bridge.jpeg');
}
return (
<div>
<ImageEditorComponent
ref={(img) => { imgObj = img }}
width="550px"
height="350px"
created={imageEditorCreated}
/>
</div>
);
}
export default App;
Common Patterns
Pattern 1: Open + Edit + Save Workflow
- Open image via
open() method
- Apply transformations, annotations, or effects
- Use
export() to save as PNG/JPEG/SVG/WEBP
- Optionally convert to base64 or blob for backend storage
Pattern 2: Responsive Toolbar
- Define custom toolbar items in
toolbar property
- Handle clicks via
toolbarItemClicked event
- Execute methods like
rotate(), zoom(), drawText() based on clicked item
- Update contextual toolbar via
toolbarUpdating event
Pattern 3: Annotation Workflow
- Enable annotation mode (freehand, text, shape)
- Customize via
shapeChanging event (color, stroke, font)
- Delete via
deleteShape() with shape ID
- Manage layers via z-order methods
Pattern 4: Dialog Integration
- Render Image Editor in Dialog's
content template
- Load image when dialog opens via
fileOpened event
- Call
clearImage() before closing dialog
- Retrieve edited image data via
export() or getImageData()
Pattern 5: Filter + Finetune Pipeline
- Apply filter via
applyImageFilter()
- Fine-tune via
finetuneImage() (brightness, contrast, etc.)
- Listen to
imageFiltering and finetuneValueChanging events
- Combine effects for professional results
Key Properties
| Property |
Type |
Purpose |
width |
string |
Editor canvas width (e.g., "550px", "100%") |
height |
string |
Editor canvas height (e.g., "350px", "100%") |
toolbar |
array |
Customize toolbar items and visibility |
fontFamily |
object |
Add custom font families |
uploadSettings |
object |
Configure file restrictions (extensions, size) |
zoomSettings |
object |
Set min/max zoom factors |
showQuickAccessToolbar |
boolean |
Show/hide quick access toolbar |
locale |
string |
Set localization (e.g., 'de-DE') |
Key Events
| Event |
Trigger |
Use Case |
created |
Component initialized |
Load image on startup |
fileOpened |
Image loaded |
Add watermarks, apply defaults |
beforeSave |
Before export |
Validate, add metadata |
cropping |
During crop |
Prevent scaling, lock dimensions |
zooming |
During zoom |
Validate zoom level |
rotating |
During rotate |
Track rotation angle |
shapeChanging |
Annotation modified |
Customize stroke, font |
toolbarUpdating |
Toolbar rendered |
Add/remove contextual items |
Supported File Formats
Open: PNG, JPEG, JPG, SVG, WEBP, BMP (local, URL, base64, blob)
Save/Export: PNG, JPEG, SVG, WEBP
Next Steps
- Start with getting-started.md for setup
- Explore opening-saving-images.md to understand data flow
- Check specific features in their dedicated reference files
- Use accessibility-localization.md for multi-language support
1---2name: syncfusion-react-image-editor3description: Master Syncfusion React Image Editor for comprehensive image editing. Use this when users need to edit images, add annotations, apply filters, manage layers, or implement image editing features. Supports multiple formats (PNG, JPEG, SVG, WEBP, BMP), annotations (text, shapes, freehand, images), effects (filters, finetune), and accessibility features.4---5
6# Implementing Syncfusion React Image Editor
7
8The Syncfusion React Image Editor is a comprehensive, feature-rich component for editing images directly in your React applications. It provides an intuitive interface with powerful tools for transformations, annotations, effects, and more.
9
10## Component Overview
11
12The Image Editor combines a canvas-based editing environment with a comprehensive toolbar and contextual tools. It supports:
13
14- **Multiple Input Sources:** Files, URLs, base64, blobs, file managers, treeviews
15- **Rich Annotation Support:** Text (with styling), shapes, freehand drawings, watermarks
16- **Professional Effects:** Filters and fine-tuning controls
17- **Advanced Operations:** Z-order management, redaction, frame decoration
18- **Accessibility First:** Full keyboard navigation, WCAG compliance, RTL support, 120+ localization keys
19- **Flexible Integration:** Standalone or within dialogs, with customizable toolbars
20
21## Documentation and Navigation Guide
22
23### 🔹 API Reference
24📄 **Read:** [references/api.md](references/api.md)
25- Complete API documentation with all properties, methods, and events
26- Properties overview (core, toolbar, settings)
27- Methods for image operations, transformations, annotations
28- Events for lifecycle, interactions, effects, and toolbars
29- Enums and type definitions (ArrowheadType, FrameType, RedactType, etc.)
30- Complete working examples with verified method signatures
31
32### Getting Started
33📄 **Read:** [references/getting-started.md](references/getting-started.md)
34- Installation with Vite and create-react-app
35- CSS imports and theme setup
36- Basic component initialization
37- Setting width, height, and initial rendering
38
39### Opening and Saving Images
40📄 **Read:** [references/opening-saving-images.md](references/opening-saving-images.md)
41- Open from file paths, URLs, base64 strings, blobs
42- Open from file uploader, file manager, and treeview
43- Save/export as PNG, JPEG, SVG, WEBP
44- Image dimensions and aspect ratio control
45- File opened, saving, and lifecycle events
46
47### Selection and Cropping
48📄 **Read:** [references/selection-cropping.md](references/selection-cropping.md)
49- Insert custom, square, and circle selections
50- Crop with aspect ratios (2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 5:7, 7:5, 9:16, 16:9)
51- Crop method and selection events
52- Maintain original image size during cropping
53- Lock selection area during resizing
54
55### Transform: Rotate, Flip, and Straighten
56📄 **Read:** [references/transform-rotate-flip.md](references/transform-rotate-flip.md)
57- Rotate clockwise/counter-clockwise by degrees
58- Flip horizontally and vertically
59- Straighten images with fine degree adjustments (-45° to +45°)
60- Transform annotations along with image
61- Rotating and flipping events
62
63### Zoom and Pan Operations
64📄 **Read:** [references/zooming-panning.md](references/zooming-panning.md)
65- Zoom in/out with configurable min/max factors
66- Pan when zoomed or during cropping
67- Zoom triggers (toolbar, pinch, mouse wheel, keyboard)
68- Zooming and panning events
69- Zoom point calculations
70
71### Text Annotations
72📄 **Read:** [references/text-annotations.md](references/text-annotations.md)
73- Add text with position, content, and font settings
74- Text styling (bold, italic, underline, strikethrough)
75- Font families, sizes, and colors
76- Multiline text with newline characters
77- Delete text annotations
78- Customize font color via shapeChanging event
79
80### Freehand Drawing
81📄 **Read:** [references/freehand-drawing.md](references/freehand-drawing.md)
82- Enable/disable freehand drawing mode
83- Customize stroke width and color
84- Delete freehand annotations
85- Adjust stroke during drawing via shapeChanging event
86
87### Shape Annotations
88📄 **Read:** [references/shape-annotations.md](references/shape-annotations.md)
89- Draw rectangles, ellipses, lines, arrows, and paths
90- Customize shapes with stroke color, stroke width, and fill color
91- Rotate shapes with degree parameter
92- Delete shape annotations
93- Customize default stroke colors
94- Shape changing and customization events
95
96### Image Annotations
97📄 **Read:** [references/image-annotations.md](references/image-annotations.md)
98- Add images or icons as annotations
99- Control position, size, rotation, and opacity
100- Aspect ratio preservation
101- Watermarks and decorative elements
102
103### Filters
104📄 **Read:** [references/filters.md](references/filters.md)
105- Apply predefined filters (Chrome, Cold, Warm, Grayscale, Sepia, Invert)
106- Image filtering event
107- Reset filter to original
108
109### Fine-Tuning
110📄 **Read:** [references/finetune.md](references/finetune.md)
111- Adjust brightness, contrast, saturation
112- Control hue, exposure, blur, opacity
113- Finetune value changing events
114- Real-time adjustments with sliders
115
116### Undo and Redo
117📄 **Read:** [references/undo-redo.md](references/undo-redo.md)
118- Undo/redo operations with 16-step history
119- Keyboard shortcuts (Ctrl+Z, Ctrl+Y)
120- History management and limits
121
122### Toolbar Customization
123📄 **Read:** [references/toolbar-customization.md](references/toolbar-customization.md)
124- Built-in toolbar items (20+ default tools)
125- Add, remove, enable, disable toolbar items
126- Custom toolbar items with event handlers
127- Contextual toolbar for annotations
128- Toolbar templates for complete customization
129- Toolbar created and item clicked events
130
131### Quick Access Toolbar
132📄 **Read:** [references/quick-access-toolbar.md](references/quick-access-toolbar.md)
133- Quick access toolbar for annotations
134- Show/hide quick access toolbar
135- Add custom items to quick access toolbar
136- Quick access toolbar open event
137
138### Resize Image
139📄 **Read:** [references/resize-image.md](references/resize-image.md)
140- Resize with or without aspect ratio
141- Width and height parameters
142- Resizing event with before/after dimensions
143
144### Frame Decoration
145📄 **Read:** [references/frame-decoration.md](references/frame-decoration.md)
146- Apply frames (Mat, Bevel, Line, Inset, Hook)
147- Customize frame color, size, and line style
148- Frame changing event
149
150### Z-Order Layering
151📄 **Read:** [references/z-order-layering.md](references/z-order-layering.md)
152- Bring forward/send backward annotations
153- Bring to front/send to back
154- Manage annotation layer order
155
156### Redact Sensitive Information
157📄 **Read:** [references/redact-sensitive-info.md](references/redact-sensitive-info.md)
158- Blur sensitive areas
159- Pixelate sensitive information
160- Redact CRUD operations (select, update, delete, get)
161- Privacy and compliance
162
163### Accessibility and Localization
164📄 **Read:** [references/accessibility-localization.md](references/accessibility-localization.md)
165- WCAG 2.2, Section 508 compliance
166- Screen reader support
167- Keyboard shortcuts (Ctrl+Z, Ctrl+S, Ctrl+O, Delete, Enter, Escape)
168- RTL language support
169- Localization with 120+ locale keys
170
171### Image Restrictions and Validation
172📄 **Read:** [references/image-restrictions-validation.md](references/image-restrictions-validation.md)
173- Allowed file extensions (.jpg, .png, .svg, .webp, .bmp)
174- Min and max file size restrictions
175- File validation and error alerts
176
177### Clear Image
178📄 **Read:** [references/clear-image.md](references/clear-image.md)
179- Clear editor state
180- Dialog reuse patterns
181- Remove previously loaded images
182
183### Fit to Width and Height
184📄 **Read:** [references/fit-width-height.md](references/fit-width-height.md)
185- Fit image to editor container width
186- Fit image to editor container height
187- Zoom calculations for perfect fit
188
189### Render in Dialog
190📄 **Read:** [references/render-in-dialog.md](references/render-in-dialog.md)
191- Render Image Editor within Dialog component
192- Content template integration
193- Dialog show/hide patterns
194
195### Reset Image
196📄 **Read:** [references/reset-image.md](references/reset-image.md)
197- Reset all modifications to original state
198- Restore unmodified version
199- Clear annotations and effects
200
201## Quick Start Example
202
203```tsx
204import { ImageEditorComponent } from '@syncfusion/ej2-react-image-editor';
205import React from 'react';
206
207function App() {
208 let imgObj: ImageEditorComponent;
209
210 function imageEditorCreated(): void {
211 imgObj.open('https://ej2.syncfusion.com/react/documentation/image-editor/images/bridge.jpeg');
212 }
213
214 return (
215 <div>
216 <ImageEditorComponent
217 ref={(img) => { imgObj = img }}
218 width="550px"
219 height="350px"
220 created={imageEditorCreated}
221 />
222 </div>
223 );
224}
225
226export default App;
227```
228
229## Common Patterns
230
231### Pattern 1: Open + Edit + Save Workflow
2321. Open image via `open()` method
2332. Apply transformations, annotations, or effects
2343. Use `export()` to save as PNG/JPEG/SVG/WEBP
2354. Optionally convert to base64 or blob for backend storage
236
237### Pattern 2: Responsive Toolbar
2381. Define custom toolbar items in `toolbar` property
2392. Handle clicks via `toolbarItemClicked` event
2403. Execute methods like `rotate()`, `zoom()`, `drawText()` based on clicked item
2414. Update contextual toolbar via `toolbarUpdating` event
242
243### Pattern 3: Annotation Workflow
2441. Enable annotation mode (freehand, text, shape)
2452. Customize via `shapeChanging` event (color, stroke, font)
2463. Delete via `deleteShape()` with shape ID
2474. Manage layers via z-order methods
248
249### Pattern 4: Dialog Integration
2501. Render Image Editor in Dialog's `content` template
2512. Load image when dialog opens via `fileOpened` event
2523. Call `clearImage()` before closing dialog
2534. Retrieve edited image data via `export()` or `getImageData()`
254
255### Pattern 5: Filter + Finetune Pipeline
2561. Apply filter via `applyImageFilter()`
2572. Fine-tune via `finetuneImage()` (brightness, contrast, etc.)
2583. Listen to `imageFiltering` and `finetuneValueChanging` events
2594. Combine effects for professional results
260
261## Key Properties
262
263| Property | Type | Purpose |
264|----------|------|---------|
265| `width` | string | Editor canvas width (e.g., "550px", "100%") |
266| `height` | string | Editor canvas height (e.g., "350px", "100%") |
267| `toolbar` | array | Customize toolbar items and visibility |
268| `fontFamily` | object | Add custom font families |
269| `uploadSettings` | object | Configure file restrictions (extensions, size) |
270| `zoomSettings` | object | Set min/max zoom factors |
271| `showQuickAccessToolbar` | boolean | Show/hide quick access toolbar |
272| `locale` | string | Set localization (e.g., 'de-DE') |
273
274## Key Events
275
276| Event | Trigger | Use Case |
277|-------|---------|----------|
278| `created` | Component initialized | Load image on startup |
279| `fileOpened` | Image loaded | Add watermarks, apply defaults |
280| `beforeSave` | Before export | Validate, add metadata |
281| `cropping` | During crop | Prevent scaling, lock dimensions |
282| `zooming` | During zoom | Validate zoom level |
283| `rotating` | During rotate | Track rotation angle |
284| `shapeChanging` | Annotation modified | Customize stroke, font |
285| `toolbarUpdating` | Toolbar rendered | Add/remove contextual items |
286
287## Supported File Formats
288
289**Open:** PNG, JPEG, JPG, SVG, WEBP, BMP (local, URL, base64, blob)
290**Save/Export:** PNG, JPEG, SVG, WEBP
291
292## Next Steps
293
294- Start with [getting-started.md](references/getting-started.md) for setup
295- Explore [opening-saving-images.md](references/opening-saving-images.md) to understand data flow
296- Check specific features in their dedicated reference files
297- Use [accessibility-localization.md](references/accessibility-localization.md) for multi-language support