flutter_painter 2.1.0 copy "flutter_painter: ^2.1.0" to clipboard
flutter_painter: ^2.1.0 copied to clipboard

A Flutter widget to draw scribbles, text, shapes and images on a background image or color

Unreleased #

2.1.0 - 2026-07-29 #

Added #

  • Add free-style drawing state and lifecycle callbacks, including cancellation cleanup (Issue #52).
  • Add configurable text alignment and programmatic editing for existing TextDrawables (Issue #49).
  • Add TriangleDrawable and TriangleFactory support (Issue #65).
  • Allow images to opt out of free-style erasing and remain interactive in erase mode (Issue #85).
  • Add configurable opacity to ImageDrawable (Issue #30).
  • Add undo-aware color updates for existing free-style, shape, and text drawables (Issue #42, Issue #66).
  • Allow image backgrounds to be fitted and aligned over a background color (Issue #69).
  • Add direct, undo-aware removal of the selected object drawable and make failed or empty removals safe no-ops (Issue #58).
  • Rotate image backgrounds in quarter turns without rotating or displacing other drawables (Issue #44).
  • Support custom free-style drawable factories for textured and specialized brushes (Issue #55).
  • Add source cropping for image drawables, including undo-aware controller helpers (Issue #39).
  • Add reusable text labels to one- and two-dimensional shape factories (Issue #45).
  • Preserve application-defined image tags and count tagged sticker types (Issue #56).
  • Add versioned JSON export and restoration for built-in drawables, embedded images, and custom adapters (Issue #34, Issue #71, Issue #79).
  • Add transformable object groups with undoable grouping, ungrouping, and JSON persistence (Issue #81).
  • Add drawable, editable, JSON-persisted clockwise angles from 0 to 360 degrees, including reflex angles (Issue #9).
  • Add rectangular and oval source-image blur regions for redacting sensitive image content (Issue #78).
  • Add asynchronous, undoable paint-bucket flood fills with configurable color tolerance and compact span persistence (Issue #73).
  • Capture rendered widgets, including SVG widgets, as editable and undoable image drawables (Issue #53).

Fixed #

  • Restore shape drag updates, prevent missing-drawable notifications, and keep draw-once factories active after invalid multi-touch gestures (Issue #43).
  • Allow two-pointer zooming while free-style mode is active without leaving an accidental stroke, and keep drawing responsive after zooming (Issue #64, Issue #72, Issue #76).
  • Honor configured canvas scales below one and keep drawing coordinates local after zooming and panning (Issue #40).
  • Keep drawable positions, sizes, gestures, and exports aligned when the painter viewport resizes (Issue #50, Issue #68).
  • Release image-provider stream listeners after resolving an image, rebind painter widget subscriptions when controllers change, and preserve independent PageView controller/image ownership (Issue #32, Issue #36).
  • Bound the drawable save layer to the painter coordinate space instead of Rect.largest, preventing early-stroke flicker and lag with Impeller on iOS (Issue #67).
  • Apply updated text settings during active editing and keep hue sliders stable at their maximum value.
  • Preserve serialized paint miter limits across native and web renderers.

2.0.0 - 2026-07-28 #

  • Resume active maintenance after four years.
  • Add support for Flutter 3.44.8 and current Dart SDKs.
  • Breaking: Require Dart 3.8+ and Flutter 3.32+.
  • Restore Android, iOS, web, and desktop example runners.
  • Replace removed and deprecated framework APIs.
  • Fix repainting when the painter scale changes.
  • Respect hidden drawables inside groups and use the correct vertical assist paint.
  • Restore selecting, moving, scaling, and rotating objects when canvas zoom is enabled.

1.0.1 #

1.0.0 #

  • Add ImageDrawable; now you can add any images you want onto the painter. They can be flipped. (Issue #8).
  • Add DoubleArrowDrawable, which is the same as ArrowDrawable but with an arrow head on both sides (thanks to AuronChoo).
  • Add free-style eraser mode; now you can erase any drawing, free-style or not (Issue #3).
    • BREAKING: FreeStyleSettings.enabled is now replaced with FreeStyleSettings.mode which has the values FreeStyleMode.none, FreeStyleMode.draw and FreeStyleMode.erase.
  • Add the ability to undo and redo actions, including adding, editing, moving and removing drawables.
  • Add a new FlutterPainter constructor, FlutterPainter.builder.
    • It takes the PainterController and a builder function, and passes the context and painter itself as an argument. The builder is automatically called when an update occurs in the controller.
  • Add the ability to scale (zoom in/out) the painter.
  • Add the selected object drawable as a part of PainterController value, which automatically updates when the selected object drawable changes.
  • Fix a bug where tapping in free-style mode doesn't draw dots (Issue #5, thanks to friebetill).
  • Fix a bug where sometimes object drawables affect other object drawables un-intentionally (Issue #12).
  • Fix some unintended behaviors with FlutterPainter callbacks where they're called in the wrong time and pass the wrong drawable.
  • Separate the package into two main libraries, flutter_painter_pure and flutter_painter_extensions, with the main library, flutter_painter to use them both.
    • flutter_painter_pure is the API of Flutter Painter without any extensions.
    • flutter_painter_extensions is all the extensions both to Flutter and to Flutter Painter itself.
    • flutter_painter includes both, and is what you'll use most of the time.

0.2.1 #

  • Fix a static compatibility issue with Flutter Web.

0.2.0 #

  • Add support for cursor-based controls; now objects can be scaled and rotated using cursor.
  • Add shapes; now you can create rectangles, ovals, lines and arrows (Issue #1).

0.1.0 #

  • Shift text field while editing text if needed so that it doesn't get blocked by the keyboard.

0.0.1 #

  • Initial release.
154
likes
160
points
364
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter widget to draw scribbles, text, shapes and images on a background image or color

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

collection, flutter

More

Packages that depend on flutter_painter