PHP Imagick 类 - 将 JPEG 转换为渐进式 JPEG?隔行扫描不起作用


PHP Imagick Class - Convert JPEG's to Progressive JPEG's? Interlace not working

我正在尝试完成我的图像上传器,该上传器利用imagigeck来处理各种图像类型。我正在尝试工作的一件事是将 jpeg 文件转换为渐进式 jpeg。我已经尝试了下面的代码,但是当我查看在irfranview中输出的图像时,jpeg不是渐进式的。有什么想法吗?

foreach ($thumbnailScaleWidths as $thumbnailScaleWidth) {
    $thumbnail = new imagick($uploadedFile['tmp_name']);
    $thumbnailDimensions = $thumbnail->getImageGeometry();
    $thumbnailWidth = $thumbnailDimensions['width'];
    $thumbnailHeight = $thumbnailDimensions['height'];
    $thumbnailScaleHeight = ($thumbnailScaleWidth / $thumbnailWidth) * $thumbnailHeight;
    $thumbnail->thumbnailImage($thumbnailScaleWidth, $thumbnailScaleHeight);
    $thumbnail->setImageInterlaceScheme(Imagick::INTERLACE_PLANE);
    $thumbnail->writeImages($_SERVER['DOCUMENT_ROOT'] . "/Resources/Media/$userId/$internalName-$thumbnailScaleWidth.$fileType", true);
}

关于为什么这不输出渐进式 jpeg 的任何想法?

使用 setInterlaceScheme 而不是 setImageInterlaceScheme - 后者似乎什么也没做,但前者对我来说很好用。