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 に答える