ImageEditorController class

图片编辑器控制器 继承自 ChangeNotifier,用于管理所有编辑状态和业务逻辑。 UI层通过监听此控制器来响应状态变化。

Inheritance

Constructors

ImageEditorController({required Image image, ImageEditorConfig config = const ImageEditorConfig()})
构造函数,需要传入一个初始图片

Properties

activeDragHandle → DragHandlePosition?
no setter
activeTool → EditToolsMenu
no setter
canResetToOriginal → bool
检查是否可以完全撤销(是否与原始状态不同)
no setter
canUndo → bool
检查是否可以回退(是否有历史记录)
no setter
canvasSize → Size?
no setter
config → ImageEditorConfig
final
cropRect → Rect?
no setter
currentRotationAngle → double
no setter
handleVisualSize → double
final
hashCode → int
The hash code for this object.
no setterinherited
hasListeners → bool
Whether any listeners are currently registered.
no setterinherited
image → Image
no setter
isBusy → bool
no setter
isCropFeatureEnabled → bool
no setter
isCroppingActive → bool
no setter
isFixedRotateEnabled → bool
是否启用固定角度旋转功能
no setter
isFreeRotateEnabled → bool
是否启用自由旋转功能
no setter
isRotateFeatureEnabled → bool
no setter
isSingleToolMode → bool
判断是否处于单一工具模式(由 config.lockToTool 决定)
no setter
isTextFeatureEnabled → bool
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
scale → double
no setter
selectedTextLayerId → String?
no setter
textLayers → List<TextLayerData>
no setter
translateX → double
no setter
translateY → double
no setter

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
applyCurrentTool() → Future<void>
应用当前工具的修改
cancelCurrentTool() → void
取消当前工具的修改
clearTextSelection() → void
清除文本选择
convertLockModeToTool(LockToTool lockMode) → EditToolsMenu
deleteSelectedTextLayer() → void
删除选中的文本图层
dispose() → void
Discards any resources used by the object.
inherited
exportImage() → Future<Image?>
getDeleteButtonBounds(TextLayerData layer) → Rect
新增 获取指定图层的删除按钮边界框(用于绘制)
getTextLayerBounds(TextLayerData layer) → Rect
新增 获取指定图层的边界框(用于绘制)
isClickOnDeleteButton(Offset tapPosition) → bool
优化 检查点击位置是否在文本图层删除按钮区域内 删除按钮位于选择框左上角,大小为 20x20
isToolEnabled(EditToolsMenu tool) → bool
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
onScaleEnd(ScaleEndDetails details) → void
onScaleStart(ScaleStartDetails details) → void
onScaleUpdate(ScaleUpdateDetails details) → void
onTapDown(TapDownDetails details) → void
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
resetToOriginal() → void
完全撤销:重置到原始图片和初始状态
resetTransformations({Image? newImage}) → void
重置所有变换状态,通常在替换图片或完成裁剪后调用
rotate(double degrees) → void
旋转图片(按指定角度)
selectCropTool(EditToolsMenu tool, {double? aspectRatio}) → void
选择特定的裁剪工具(带宽高比)
selectTextLayerAt(Offset tapPosition) → bool
根据点击位置选择文本图层,返回是否命中
selectTool(EditToolsMenu tool) → void
切换主工具
setCanvasSize(Size size) → void
UI层在布局完成后需要调用此方法设置画布尺寸
toString() → String
A string representation of this object.
inherited
undoLastOperation() → void
回退:撤销最后一次应用的操作
updateEditingText(String text) → void
updateFreeRotation(double degrees) → void
@param degrees - 从滑块传来的角度值 (-45 to +45)
updateSelectedTextColor(Color color) → void
更新选中图层的颜色
updateSelectedTextSize(double size) → void
更新选中图层的大小

Operators

operator ==(Object other) → bool
The equality operator.
inherited