繁体   English   中英

使用PHP-Imagick的getImageSignature方法的结果很奇怪

[英]Weird results using PHP-Imagick getImageSignature method

我正在尝试使用PHP Imagick的getImageSignature方法比较不同的图像,看它们是否相等,但是当从具有不同版本的ImageMagick和OS的不同计算机上调用该方法时,即使使用相同的图像文件,我也会获得不同的签名。

在这些情况下,我是否应该始终获得相同的签名?

非常感谢。

在这些情况下,我是否应该始终获得相同的签名?

简短的答案是没有。

Imagick :: getImageSignature包装了MagickGetImageSignature ,它在运行时基于内存和Quantum颜色空间中的虚拟像素生成签名。 后者在编译时受配置选项或环境参数的影响。 版本和主机体系结构的差异将导致图像签名的变化。

由于签名只是SHA-256摘要,因此自己生成一个签名会更简单。

$signature = sha1($image->getImageBlob());
// or subclass the method
class MyImagick extends Imagick {
 public function getMyImageSignature() {
   return sha1($this->getImageBlob());
 }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM