为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Imagick::steganoImage() 恢复水印集

如何使用 Imagick::steganoImage() 恢复水印集

PHP
30秒到达战场 2022-06-11 18:27:56
所以我使用了这个用 PHP 编写的 Imagemagick 库包装器,并了解了这个名为 steganoImage() 的函数,它只是说它会在图像中隐藏一个水印。但问题是文档没有说明如何恢复该图像。我也检查了所有其他功能,没有找到任何东西。我想为此提供一个 Imagick 解决方案。
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

在您花费大量时间之前,您需要用于创建秘密图像的原始维度来检索它。因此,如果图像被裁剪、调整大小或格式更改,您可能无法检索到消息。


供您参考,这是 Imagick 示例的好站点:https ://phpimagick.com/Imagick/queryFormats虽然他们没有提到 steganoImage()


在网上我发现下面的代码(Codesearch)适用于 IMagick:


#!/usr/bin/perl


use Image::Magick;


#

# Hide an image within an image

#

$watermark=Image::Magick->new;

$watermark->ReadImage('smile.gif');

($width, $height)=$watermark->Get('width','height');

#

# Hide image in image.

#

$image=Image::Magick->new;

$image->ReadImage('model.gif');

$image->SteganoImage(image=>$watermark,offset=>91);

$image->Write('model.png');

$image->Write('win:');

#

# Extract image from image.

#

$size="$width" . "x" . "$height" . "+91";

$stegano=Image::Magick->new(size=>$size);

$stegano->ReadImage('stegano:model.png');

$stegano->Write('stegano.gif');

$stegano->Write('win:');


查看完整回答
反对 回复 2022-06-11
?
精慕HU

TA贡献1845条经验 获得超8个赞

Bonzo提供的答案是正确的。PHP 的 Imagick 中的示例看起来非常相似。


$image = new Imagick('rose:');

$watermark = new Imagick('label:Hello World!');


// The decoding process must "know" about the watermarks size, and starting

// pixel offset.

define('STEGANO_OFFSET', 64); // Secret offset

define('STEGANO_WIDTH', $watermark->getImageWidth());

define('STEGANO_HEIGHT', $watermark->getImageHeight());


$stegano = $image->steganoImage($watermark, STEGANO_OFFSET);

$stegano->writeImage('output.png');

//img1.sycdn.imooc.com//62a46e700001903600720047.jpg

要解码原始水印,请在读取文件之前定义隐藏图像的宽度、高度和偏移量。


$decoded = new Imagick();

$decoded->setSizeOffset(STEGANO_WIDTH, STEGANO_HEIGHT, STEGANO_OFFSET);

$decoded->readImage('STEGANO:output.png');

$decoded->writeImage('decoded.png');

//img1.sycdn.imooc.com//62a46e7e0001d96400690017.jpg

查看完整回答
反对 回复 2022-06-11
  • 2 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信