imagick getImageLength 在裁剪图像后不起作用

imagick getImageLength not working after crop image

我想裁剪一部分图片,然后将这一部分上传到其他服务器。 我必须确保我上传的图片大小在 300k 以下。

$image = new Imagick( $path );
echo $image->getImageLength();

$image->cropImage( $image->getImageWidth(), $image->getImageHeight() / 4, 0, 0 );

echo $image->getImageLength();

我第一次使用 $image->getImageLength() return 获得图像大小的正确值。 但是它 returns 0 而我在 cropImage 之后得到图像大小。

图像处理后如何得到正确的值?我想知道是不是小到可以上传

终于,我想我找到了裁剪图像后获取文件大小的方法。

使用 strlen( $image->getImageBlob() ) 将始终 return 正确的值。

看来Imagick库只是在图像以某种方式输出后才计算长度。如果您在 之前调用 $image->getImageBlob() 之后调用 $image->getImageLength() ,它将 return 正确的值。