6

Web サイトで画像をアップロードして、画像を 100 x 100 の白い正方形に収まるサムネイルに変更しています。問題は、画像が適切にアンチエイリアスされていないように見えることです。フォトショップでサイズを縮小した画像は滑らかに見えますが、これらは非常にシャープなようにカリカリに見えます.

これらのサンプルを見てみましょう。左側にフル サイズ、右側にサムネイルが表示されます (100% で表示)。写真は途方もなくシャープに見えますが、多くの人は気にしないかもしれません. しかし、図面は受け入れられません。これらの曲線はアンチエイリアスがまったく適用されず、点線になります。

imagejpg() を使用していますが、選択した jpg の品質は歯ごたえに影響しません。それを囲むコードの一部を次に示します。

$tmp_img = imagecreatetruecolor( $maxSize, $maxSize );
$white = ImageColorAllocate ($tmp_img, 255, 255, 255);
ImageFill($tmp_img, 0, 0, $white);
imagecopyresized( $tmp_img, $img, $offsetx, $offsety, 0, 0, $new_width, $new_height, $width, $height );
$thumbFullPath = "{$pathToThumbs}/{$filenameNoExtension}.jpg";
imagejpeg( $tmp_img, $thumbFullPath, 90 );

何か案は?これは正常ですか?ありがとう!

4

3 に答える 3

14

imagecopyresampledの代わりに試してみることをお勧めしimagecopyresizedます。処理は遅くなりますが、より洗練されたアルゴリズムを使用して、新しい画像のすべてのピクセルの色を決定します。

于 2010-06-19T18:35:29.383 に答える
6

最後の行を次のように変更します。

imagejpeg( $tmp_img, $thumbFullPath, 100 );

参照: http://us4.php.net/manual/en/function.imagejpeg.php

また、imagecopyresampled()代わりに使用してみてくださいimagecopyresized()

参照: http://us4.php.net/manual/en/function.imagecopyresampled.php

于 2010-06-19T18:30:35.017 に答える