Releases: FlutterPlaza/secure_watermark
Releases · FlutterPlaza/secure_watermark
v0.3.1
Fixes
- Shorten package description to meet pub.dev 60–180 character limit
- Tighten
argslower bound to^2.5.0forArgResults.flag()/option()compatibility - Replace
setPixelRgbawithgetPixelchannel assignment in tests forimage4.0.0 compatibility - Pass pub.dev downgrade analysis with zero errors
v0.3.0 — Forensic (Invisible) Watermarking
What's New
Forensic Watermark (ForensicWatermark)
- Spread-spectrum LSB embedding hides traceable data in image pixels
- DJB2-seeded PRNG with Set-based collision avoidance for deterministic pixel selection
- Majority voting across configurable redundancy copies for error correction
- Magic number (
0x574D) validation for wrong-key detection ForensicWatermarkImagewidget with background isolate processing viacompute()
CLI Tools
dart run secure_watermark:embed— embed a payload into a PNGdart run secure_watermark:extract— extract a hidden payload from a PNG
Example App
- Two-tab demo: Visible watermark controls + Forensic embed/extract workflow
- Interactive payload, key, and redundancy configuration
Docs
- GIF showcases for both visible and forensic features
- Badges: pub version, points, popularity, likes, license, lints
- Full API reference tables for all new classes
Dependencies
- Added
image^4.0.0 (PNG decode/encode) - Added
args^2.4.0 (CLI argument parsing)
Tests
- 61 total tests (25 existing + 36 new)
- Covers roundtrip, unicode, redundancy variants, determinism, error handling, widget lifecycle
Full Changelog: v0.1.0...v0.3.0
v0.1.0
0.1.0 — Initial Release
Watermarkwidget withStack+IgnorePointer+RepaintBoundaryoverlayWatermarkStyleimmutable config with opacity, rotation, spacing, staggered modeWatermarkPainterusingParagraphBuilderfor efficient text tiling- Diagonal tiling with staggered rows (brick pattern) for crop resistance
enabledflag to toggle watermark without removing from widget tree- Widget, painter, and style unit tests (25 passing)