1

私は以下のコードを使用してjpeg画像を回転していますが、問題は、画像を約10〜20回回転させた後、画像の品質が劇的に低下することです。特に青い空など、これらの画像を同じに保つにはどうすればよいですか。高品質の画像?方法があるに違いありません。つまり、アップロードされた画像ごとに元の画像をサーバーに保持し、それに対しては何もしません。したがって、必要に応じて、可能な限りそれを使用する方法を常に考え出すことができると思います。しかし、そうする必要はありません。

$source = imagecreatefromjpeg($filename);

$rotate = imagerotate($source, 90, 0);

imagejpeg($rotate, $filename ,100);
4

1 に答える 1

2

主な問題は回転ではなく、JPEG での保存です。JPEG は、「100%」の品質に設定されていても、常に損失があります。実際にイメージを変更することと組み合わせると、イメージはより急速に劣化します。コメントで述べたように、これに対処する唯一の実際の方法は、常にソース イメージから作業することです。画像に適用する必要がある変更を追跡し、利用可能な最高品質の画像に一度にすべての変更を適用します。「x度回転」、「白黒フィルタの適用」、「サイズ変更とトリミング」など、ユーザーが画像に対して実行できる操作の数を制限し、それぞれを厳密な順序で一度に適用すると役立ちます.

于 2012-10-17T06:29:00.713 に答える