flutter_signature_package 1.0.1
flutter_signature_package: ^1.0.1 copied to clipboard
A Flutter package for drawing signatures on a canvas.
Signature Canvas #
A Flutter package for drawing signatures on a canvas. This package provides functionality to draw smooth lines based on user input gestures.
Features #
- Draw smooth lines on a canvas.
- Undo and redo drawing actions.
- Clear the canvas.
- Export the drawn signature as PNG bytes.
- Customize Pan Stroke Width on Canvas
Installation #
Add the following line to your pubspec.yaml
dependencies:
dependencies:
flutter_signature_package:
git:
url: https://github.com/Dojibery/flutter-signature-package
Usage #
Import the package in your Dart file:
import 'package:my_signature_package/flutter_signature_package.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Signature Canvas Example'),
),
body: SafeArea(
child: Column(
children: [
Expanded(child: SignatureCanvas()),
ActionButtons(),
],
),
),
),
);
}
}
Explanation #
- SignatureCanvas: Widget for drawing signatures based on user input.
Examples #
Basic Usage #
class MySignaturePage extends StatelessWidget {
final SignatureCanvasController signatureCanvasController = SignatureCanvasController();
void _handleSave(Uint8List pngBytes) {
// Handle the saved PNG bytes here
print('Saved PNG bytes: $pngBytes');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Signature')),
body: Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: SignatureCanvas(
backgroundColor: Colors.white,
controller: signatureCanvasController,
onSave: _handleSave,
), ),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
IconButton(
icon: Icon(Icons.undo),
onPressed: () {
signatureCanvasController.undo();
},
),
IconButton(
icon: Icon(Icons.redo),
onPressed: () {
signatureCanvasController.redo();
},
),
IconButton(
icon: Icon(Icons.delete),
onPressed: () {
signatureCanvasController.clearAll();
},
),
IconButton(
icon: Icon(Icons.save),
onPressed: () {
signatureCanvasController.exportDrawing();
},
),
],
),
],
),
),
),
);
}
}
Save Signature as PNG Bytes #
SignatureCanvas(
onSave: (Uint8List pngBytes) {
// Handle the saved PNG bytes here
print('Saved PNG bytes: $pngBytes');
},
)
Contributing #
Contributions are welcome! Feel free to open issues and pull requests to suggest new features, report bugs, or improve the codebase.
License #
This project is licensed under the MIT License - see the LICENSE file for details.