我正在尝试完成我的图像上传工具,它利用imagick来处理各种图像类型。我特别想做的一件事就是把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?
发布于 2016-10-08 08:35:14
我知道这个帖子很老,但这里有一个答案,可能会在未来为其他人节省时间。
因此,由于您正在从文件中读取图像,因此应改用以下方法:Imagick::setInterlaceScheme
似乎Imagick::setImageInterlaceScheme只有在Imagick用于自己生成图像时才会起作用……
https://stackoverflow.com/questions/19208506
复制相似问题