Last updated:
0 purchases
flutter steganograph
Flutter Steganograph #
Flutter Steganograph is a digital image encoding package that embeds a message (text or image) into a cover image/text using the least significant bit (LSB) technique with minimal alteration to the original cover image/text.
Installation 🛸 #
Add flutter_steganograph to your pubspec.yaml:
dependencies:
flutter_steganograph: ^0.1.0
copied to clipboard
Usage 📦 #
Importing the Package
import 'package:flutter_steganograph/flutter_steganograph.dart';
copied to clipboard
Embed a secret text into a cover text ♟️ #
Embeds a secret text inside a cover text using zero-width characters.
Returns a string with the secret message embedded inside cover text, invisible to normal readers.
import 'package:flutter_steganograph/src/flutter_steganograph.dart';
final steganograph = Steganograph();
String embeddedText = steganograph.embedTextInText(
coverText: 'cover text sample',
secretMessage: 'super secret text to hide',
);
print(embeddedText);
copied to clipboard
Extract the secret text from cover text ♖ #
Extracts a text message embedded in a text using zero-width characters.
Returns the extracted secret message. If no secret message is found, returns a message indicating this.
import 'package:flutter_steganograph/src/flutter_steganograph.dart';
final steganograph = Steganograph();
String secretText = steganograph.extractTextFromText(
encodedText: 'cover text sample',
);
print(secretText);
copied to clipboard
Embed a text into an image 🔩 #
Embeds a text string into an image.
Optional saveImage argument to download embedded image to gallery.
Returns the encoded bytes -> Uint8List.
import 'package:image/image.dart' as dImage;
import 'package:flutter_steganograph/src/flutter_steganograph.dart';
final steganograph = Steganograph();
final coverImage = dImage.decodePng(File('/cover_image.png').readAsBytesSync())!;
final embeddedTextImage = steganograph.embedText(
image: coverImage,
text: 'super secret text',
saveImage: true
);
// to covert to material image
Image.memory(embeddedTextImage);
copied to clipboard
Extract the secret text from the encoded image 🔬 #
Extracts a secret text string from an encoded image.
Returns the extracted secret String
import 'package:image/image.dart' as dImage;
import 'package:flutter_steganograph/src/flutter_steganograph.dart';
final steganograph = Steganograph();
final encodedImage = dImage.decodePng(File('/encoded_image.png').readAsBytesSync())!;
int secretLength = secretText.length;
String secretText = steganograph.extractText(
image: encodedImage,
length: secretLength,
);
copied to clipboard
Embed a secret Image inside a cover image 🖼️ #
Embed/encode a secret image inside a cover image.
secret image dimensions are smaller than cover image dimensions.
Returns the embedded bytes -> Uint8List of encoded image.
import 'package:image/image.dart' as dImage;
import 'package:flutter_steganograph/src/flutter_steganograph.dart';
final steganograph = Steganograph();
final coverImage = dImage.decodePng(File('/cover_image.png').readAsBytesSync())!;
final secretImage = dImage.decodePng(File('/secret_image.png').readAsBytesSync())!;
Uint8List embeddedImage = steganograph.embedImage(
coverImage: coverImage,
secretImage: secretImage,
);
//to covert to material image
Image.memory(embeddedImage);
copied to clipboard
Extract the secret Image from an encoded image 🧮 #
decode a secret image from the encoded image.
Returns the embedded bytes -> Uint8List of secret image.
import 'package:image/image.dart' as dImage;
import 'package:flutter_steganograph/src/flutter_steganograph.dart';
final steganograph = Steganograph();
final encodedImage = dImage.decodePng(File('/encodedImage_image.png').readAsBytesSync())!;
int secretImageHeight;
int secretImageWith;
Uint8List extractedImage = steganograph.extractImage(
embeddedImage: encodedImage!,
secretWidth: secretImageHeight,
secretHeight: secretImageHeight,
);
//to covert to material image
Image.memory(extractedImage);
copied to clipboard
Coming soon #
encryption 🔒 of secret text and image
Contribution #
Feel free to open pull requests that improve the quality of images or performance of the library.
Any bugs should be submitted to Issues
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.