4

我有一个页面,用户可以在其中向左和向右旋转图像。

问题是当用户将图像旋转 4-5 次时,质量会大大降低!

我做错了吗?

        $image_source = imagecreatefromjpeg($path_u);
        $rotate = imagerotate($image_source, $angle, 0);
        imageinterlace($rotate, true); //this is to create progressive jpeg
        imagejpeg($rotate, $path_u, 100);
        imagedestroy($rotate);
4

2 回答 2

4

反复修改和重新压缩图像(尤其是在 JPEG 中,无论质量设置如何都是有损的)最终必然会导致乘法伪影。您最好保留原始图像,并且当请求旋转时,重新旋转原始图像,而不是每次都保存原始图像。

于 2013-03-19T01:00:29.440 回答
-1

如果我错了,请纠正我,但在 2014 年,我们可以旋转 jpeg 图片,不是没有质量损失,而是认真地最小化它。

Imagejpeg 方法有一个“质量”参数,有助于设置所需的质量保存。100 的价值是完美的。

我尝试多次旋转同一张图像,但质量损失对人眼来说并不是真正可见的。

这是代码。

    header("Content-type: image/jpeg");
    $source = imagecreatefromjpeg($pictureUrl);
    $rotate = imagerotate($source, $degrees, 0);
    imagejpeg($rotate, $pictureUrl, 100);
    imagedestroy($source);
    imagedestroy($rotate);  
于 2014-12-05T17:11:36.703 回答