paper_scanner_platform_interface 0.1.1
paper_scanner_platform_interface: ^0.1.1 copied to clipboard
A common platform interface for the paper_scanner plugin. Defines the detection, perspective-crop and filter operations every platform must implement.
paper_scanner_platform_interface #
The common platform interface for the paper_scanner federated plugin.
Apps should depend on paper_scanner, not this package. Implement this
interface only if you are writing a new platform implementation.
The contract #
PaperScannerPlatform defines four operations:
| Method | Purpose |
|---|---|
detectInImage(path) |
Detect the document quad in a captured still. |
detectInFrame(frame) |
Realtime detection on a downscaled preview frame. |
cropPerspective(path, quad) |
Warp the four corners to a flat rectangle. |
applyFilter(path, filter) |
Enhance / grayscale / black-and-white. |
Coordinates are normalized (0..1, top-left origin) and quads are ordered
TL, TR, BR, BL.
Channel #
The default implementation, MethodChannelPaperScanner, talks over the
paper_scanner MethodChannel. Native packages register a handler on that
same channel name, so the bundled Android/iOS implementations need no extra
Dart registration.
Pigeon migration #
A typed equivalent of the channel lives in pigeons/messages.dart.
To switch to generated code:
dart run pigeon --input pigeons/messages.dart
This emits lib/src/messages.g.dart plus Messages.g.kt / Messages.g.swift
in the implementation packages. Then route MethodChannelPaperScanner through
the generated PaperScannerApi and implement the generated host interfaces
natively. The hand-authored channel is shipped by default so the package builds
without running codegen.