imagick icon indicating copy to clipboard operation
imagick copied to clipboard

a function for restoring the image back from steganoImage()

Open rahgurung opened this issue 6 years ago • 3 comments

steganoImage() hides a water mark in a image. I need a function to get the water mark back, maybe it can accept offset as parameter.

rahgurung avatar Dec 09 '19 11:12 rahgurung

Looking the example at: https://github.com/ImageMagick/ImageMagick/blob/306762972e7c7dd2158bf00d39ed2ebd87c49e65/PerlMagick/demo/steganography.pl

It seems the following code should work, but doesn't.

# Hide an image within an image
$watermark = new Imagick();
$watermark->readImage('smile.gif');
$width = $watermark->getImageWidth();
$height = $watermark->getImageHeight();

# Hide image in image.
$image = new Imagick();
$image->readImage('model.gif');
$image->steganoImage($watermark, 91);
$image->writeimage('output.png');

# Extract image from image.
$stegano = new Imagick();

$stegano->setSizeOffset($width, $height, 91);
$stegano->readImage('stegano:output.png');
$stegano->writeImage('recovered.gif');

echo "fin.\n";

It runs, but the recovered image is random garbage.

Danack avatar Dec 22 '19 21:12 Danack

I wrote an article here.

rahgurung avatar Dec 25 '19 17:12 rahgurung

Thanks....that works. I wonder why the example I gave doesn't...

Danack avatar Dec 26 '19 13:12 Danack