6

我在网站上上传图像并将图像更改为适合 100 x 100 白色正方形的缩略图。问题是图像看起来没有正确抗锯齿。在 Photoshop 中缩小尺寸的图像看起来很平滑,但这些看起来很脆,就像超级锐化一样。

看看这些样本,左侧显示全尺寸,右侧显示缩略图(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 回答
0
$imagepath = /path/to/image.jpg; 
$image = imagecreatefromjpeg($imagepath); 
header('Content-Type: image/jpeg'); 
imagejpeg($image, NULL, 100); 

最后一行太重要了!

于 2018-07-14T05:15:09.033 回答