syncfusion-wpf-image-editor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-wpf-image-editor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The Syncfusion WPF ImageEditor control is a very handy tool that is used to edit an image by annotating with text, pen and built-in shapes. It allows you to crop, rotate, and flip an image. The image editor control has a built-in toolbar, which helps in performing editing operations.
Use this skill when building WPF applications that require:
The SfImageEditor is a comprehensive WPF control for image editing and annotation. It provides:
📄 Read: references/setup-and-basic-operations.md
When user needs to:
📄 Read: references/image-transformations.md
When user needs to:
📄 Read: references/annotations-shapes-and-text.md
When user needs to:
📄 Read: references/annotation-management.md
When user needs to:
📄 Read: references/ui-customization-and-extensions.md
When user needs to:
📄 Read: references/localization.md
When user needs to:
\\\xaml <Window x:Class="ImageEditorApp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:editor="clr-namespace:Syncfusion.UI.Xaml.ImageEditor;assembly=Syncfusion.SfImageEditor.WPF" Title="Image Editor" Height="600" Width="800"> <Grid> <editor:SfImageEditor x:Name="imageEditor" ImageSource="Assets/photo.jpg"/> </Grid> </Window> \\\
\\\csharp using Syncfusion.UI.Xaml.ImageEditor; using System.Windows; using Microsoft.Win32;
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); LoadImageFromFile(); }
private void LoadImageFromFile() { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Image Files(.BMP;.JPG;.PNG)|.BMP;.JPG;.PNG|All files (.)|.";
if (openFileDialog.ShowDialog() == true) { var stream = openFileDialog.OpenFile(); imageEditor.Image = stream; } } } \\\
\\\csharp // Load image BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri(@"Assets/photo.jpg", UriKind.Relative); image.EndInit(); imageEditor.ImageSource = image;
// User performs edits via toolbar or code...
// Save programmatically imageEditor.Save("C:\\EditedImages\\result.png"); \\\
\\\csharp using Syncfusion.UI.Xaml.ImageEditor;
// Configure text settings TextSettings textSettings = new TextSettings() { FontFamily = new FontFamily("Arial"), FontSize = 24, Color = new SolidColorBrush(Colors.Red), TextAlignment = TextAlignment.Center };
// Add text at specific position imageEditor.AddText("Copyright 2026", textSettings); \\\
\\\csharp // Configure pen settings for shapes PenSettings penSettings = new PenSettings() { Fill = new SolidColorBrush(Colors.Yellow), Stroke = new SolidColorBrush(Colors.Red), StrokeWidth = 3, Opacity = 0.7f };
// Add rectangle shape imageEditor.AddShape(AnnotationShape.Rectangle, penSettings); \\\
\\\csharp // In toolbar or menu command private void UndoButton_Click(object sender, RoutedEventArgs e) { imageEditor.Undo(); }
private void RedoButton_Click(object sender, RoutedEventArgs e) { imageEditor.Redo(); } \\\
\\\csharp using System.IO;
// Serialize annotations to file private void SaveAnnotations() { using (FileStream stream = new FileStream("annotations.xml", FileMode.Create)) { imageEditor.Serialize(stream); } }
// Deserialize annotations from file private void LoadAnnotations() { using (FileStream stream = new FileStream("annotations.xml", FileMode.Open)) { imageEditor.Deserialize(stream); } } \\\
\\\csharp // Enable zoom with mouse wheel imageEditor.EnableZooming = true;
// Enable panning for zoomed images imageEditor.EnablePanning = true;
\\\
| Property | Type | Description |
|---|---|---|
| ImageSource | ImageSource | Gets or sets the image to be loaded in the editor |
| Image | Stream | Loads image from a stream source |
| EnableZooming | bool | Enables or disables zoom functionality |
| EnablePanning | bool | Enables or disables pan mode for navigation |
| IsToolbarVisiblity | bool | Shows or hides the built-in toolbar |
| Annotations | ReadOnlyCollection<ImageEditorAnnotationsInfo> | Collection of all annotations in the editor |
| Method | Parameters | Description |
|---|---|---|
| Save() | string format = null, Size size = new Size(), string filePath = null | Saves edited image to specified path |
| Reset() | - | Resets image to original state |
| Undo() | - | Undoes the last annotation operation |
| Redo() | - | Redoes the previously undone operation |
| AddShape() | ShapeType shapeType, PenSettings penSettings | Adds a shape at specified bounds |
| AddText() | string text, TextSettings textSettings | Adds text at specified position |
| ToggleCropping() | - | Toggles crop mode on/off |
| ToggleCropping() | float xRatio, float yRatio, bool isEllipse = false | crop preview with the specified height to width ratio. |
| ToggleCropping() | Rect rect | crop preview to the specified bounds. |
| ToggleCropping() | Rect rect, bool isEllipse | Enables the cropping preview on the image with the specified rectangle bounds. |
| Crop() | Rect rect = null, bool isEllipse = false | Crops image to specified rectangle |
| AddCustomView() | FrameworkElement element, CustomViewSettings customViewSettings | Adds custom overlay view |
| Serialize() | Stream stream | Saves annotations to XML stream |
| Deserialize() | Stream stream | Loads annotations from XML stream |
| Event | Description |
|---|---|
| ImageSaving | Raised before image is saved, allows cancellation |
| ImageSaved | Raised after image is saved successfully |
| BeginReset | Raised before reset operation begins |
| EndReset | Raised after reset operation completes |
| ItemSelected | Raised when annotation is selected |
| ItemUnselected | Raised when annotation is deselected |
| ImageEdited | Raised whenever the image is edited |
| ImageLoaded | Raised when the image is loaded |
Next Steps:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.