flutter_advanced_canvas_editor 2.0.3 copy "flutter_advanced_canvas_editor: ^2.0.3" to clipboard
flutter_advanced_canvas_editor: ^2.0.3 copied to clipboard

A powerful Flutter canvas editor with Photoshop-style layers, freehand drawing, drag-and-drop components, undo/redo, and PNG export. Works on all platforms.

Flutter Advanced Canvas Editor #

A Flutter package for creating, editing, and exporting canvas-based artwork with advanced features.

Preview #

Features #

  • Photoshop-style layer system — create, delete, duplicate, rename, and reorder layers
  • Per-layer visibility, opacity, and lock controls
  • Freehand drawing and erasing
  • Drag-and-drop widget components onto the canvas
  • Global undo / redo (snapshot-based, covers all layers)
  • Export the canvas as a PNG image
  • Works on all platforms (Android, iOS, Web, macOS, Windows, Linux)

Installation #

dependencies:
  flutter_advanced_canvas_editor: ^2.0.3

Quick start #

import 'package:flutter_advanced_canvas_editor/flutter_advanced_canvas_editor.dart';

// 1. Create a controller
final controller = CanvasController(
  (pngBytes) => savePng(pngBytes), // called on exportCanvas()
);

// 2. Listen to state changes and rebuild your UI
controller.setOnStateChanged((isDrawing, isErasing) => setState(() {}));

// 3. Drop CanvasWidget into your widget tree
CanvasWidget(controller: controller)

For a complete working example with a layer panel, draggable items, and action buttons see the example tab.

Core API #

Method Description
enableDrawing() / enableErasing() Enter draw / erase mode
disableDrawingErasing() Exit both modes
undo() / redo() Step through history
clearAll() Clear all unlocked layers
exportCanvas() Export to PNG (fires the export callback)
createLayer({name, opacity, locked}) Add a new layer, returns its ID
deleteLayer(index) Remove a layer
setCurrentLayer(index) Switch the active layer
setLayerVisibility(index, bool) Show / hide a layer
setLayerOpacity(index, double) Set layer opacity (0.0 – 1.0)
setLayerLocked(index, bool) Lock / unlock a layer
duplicateLayer(index) Duplicate a layer
mergeLayerDown(index) Merge a layer into the one below
addComponent(widget, offset) Place a widget on the canvas

Contributing #

Contributions are welcome! Feel free to open issues and pull requests.

License #

MIT — see the LICENSE file for details.

11
likes
160
points
131
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A powerful Flutter canvas editor with Photoshop-style layers, freehand drawing, drag-and-drop components, undo/redo, and PNG export. Works on all platforms.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flutter_advanced_canvas_editor