v3.1.0+2hand_signature
स्मूथ सिग्नेचर बनाने की अनुमति देने वाला सिग्नेचर पैड विजेट। ड्रॉ और एक्सपोर्ट सेटिंग्स की विविधता है। और SVG का समर्थन भी करता है।
एक फ्लटर प्लगइन जो चिकनी हस्ताक्षर बनाने के लिए सिग्नेचर पैड प्रदान करता है।
{"sdk":"flutter"}{"sdk":"flutter"}यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
A Flutter plugin providing a Signature Pad for drawing smooth signatures. This library is written in a pure Dart/Flutter environment to provide support for all platforms. It's easy to use, with a variety of drawing and export settings, and also supports SVG files.
Signature
The signature pad drawing is based on Cubic Bézier curves and offers a choice between performance and 'beauty' modes.
line, shape, and arc presets for different visual styles. It's also possible to implement a custom drawing experience.Here is a simple example of how to use the signature pad.
import 'package:hand_signature/signature.dart';
final control = HandSignatureControl(
initialSetup: SignaturePathSetup(
threshold: 5.0,
smoothRatio: 0.65,
velocityRange: 2.0,
pressureRatio: 0.0,
),
);
final widget = HandSignature(
control: control,
drawer: ShapeSignatureDrawer(
color: Colors.blueGrey,
width: 2.0,
maxWidth: 10.0,
),
);
HandSignatureControlThis class handles the logic behind the signature, controlling input touches and managing the control points of the signature curve. SignaturePathSetup defines how input data will be handled.
threshold: Controls the minimal distance between two points. A higher distance creates a smoother, but less precise, curve.smoothRatio: (0 - 1) Controls how smooth the curve will be. A higher ratio creates a smoother, but less precise, curve. The best results are typically between 0.5 and 0.75.velocityRange: Controls the curve size based on the drawing speed. A thin line corresponds to a fast movement, while a thick line corresponds to a slow movement.presureRatio: (0 - 1) Ratio between pressure sensitivity and velocity. 0.0 = only velocity, 1.0 = only pressure. Some platforms/devices (like mouse pointer) doesn't support sensitivity'args: Custom variables - mostly used for custom HandSignatureDrawer.HandSignatureThis widget handles touch gestures and draws the curve on the canvas.
control: The HandSignatureControl that processes input and stores the raw data.drawer: The HandSignatureDrawer that handles the painting of the signature.backgroundColor: The background color of the signature canvas.placeholder: A widget to display when the signature is empty.Drawers are responsible for rendering the signature on the canvas. You can use one of the pre-built drawers or create your own.
LineSignatureDrawer: Basic line with a single line width.ShapeSignatureDrawer: Default drawer, mimics an ink pen. It varies line width based on velocity and/or pressure. This is a good option for exporting to SVG.ArcSignatureDrawer: Also mimics an ink pen, but is less performant than ShapeSignatureDrawer. This is the default drawer when exporting to an image.DynamicSignatureDrawer: Dynamically selects the drawing type based on provided arguments.MultiSignatureDrawer: Combines multiple drawers, allowing for complex effects and layering.You can create a custom drawer by extending HandSignatureDrawer and implementing the paint method. This allows full control over how the signature is rendered.
class MyCustomDrawer extends HandSignatureDrawer {
@override
void paint(Canvas canvas, Size size, List<CubicPath> paths) {
// Custom painting logic here
}
}
Check custom_sample.dart for dynamic setup and drawing.
Custom Drawer
You can modify properties like canvas size, stroke width, and color during export. You can also provide a custom drawer when exporting to an image. The most common export formats are SVG and PNG. During export, data are re-rendered with the preferred setup and output dimensions.
State can be saved with toMap() and restored with the import() method.
final control = HandSignatureControl();
// Export to SVG
final svg = control.toSvg();
// Export to PNG
final png = await control.toImage(
width: 512,
height: 512,
drawer: ShapeSignatureDrawer(
color: Colors.black,
),
);
// Export to raw data
final data = control.toMap();
// Import from raw data
control.import(data);
shape: Generates a reasonably small file that is well-supported by most programs.arc: Generates a larger SVG file, which some programs may struggle to handle.line: A simple Bezier curve.Image or Picture object, which can then be converted to PNG bytes.
arc: Default drawer when exporting image data.drawer: Specifies HandSignatureDrawer to use during canvas export.timestamp and pressure information for each point.You can display an exported SVG file using a library like flutter_svg.