[英]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.