ForensicWatermarkImage class

A widget that embeds a forensic watermark into imageBytes and displays the result.

Processing is performed in a background isolate via compute to avoid blocking the UI thread.

Shows placeholder while processing and calls errorBuilder on failure. Re-processes automatically when imageBytes, payload, secretKey, or config change.

ForensicWatermarkImage(
  imageBytes: pngBytes,
  payload: 'user@example.com',
  secretKey: 'key-123',
  placeholder: const CircularProgressIndicator(),
  errorBuilder: (context, error) => Text('Failed: $error'),
)
Inheritance

Constructors

ForensicWatermarkImage({Key? key, required Uint8List imageBytes, required String payload, required String secretKey, ForensicConfig config = const ForensicConfig(), Widget? placeholder, Widget errorBuilder(BuildContext context, Object error)?, BoxFit fit = BoxFit.contain, Alignment alignment = Alignment.center})
Creates a widget that embeds and displays a forensic watermark.
const

Properties

alignment Alignment
How the watermarked image should be aligned within its bounds.
final
config ForensicConfig
Configuration for the forensic watermark algorithm.
final
errorBuilder Widget Function(BuildContext context, Object error)?
Builder called when embedding fails.
final
fit BoxFit
How the watermarked image should be inscribed into the space.
final
hashCode int
The hash code for this object.
no setterinherited
imageBytes Uint8List
The source image as PNG-encoded bytes.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
payload String
The payload to embed invisibly (e.g. user ID, email).
final
placeholder Widget?
Widget to display while the watermark is being embedded.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
secretKey String
The secret key used to seed the PRNG for embedding.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<ForensicWatermarkImage>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited