robiąc zdjęcia w serwisie WWW i zmieniając obrazy na miniaturki, które pasują do białego kwadratu o wymiarach 100 x 100. Problem polega na tym, że obrazy wyglądają tak, jakby nie były odpowiednio anty-aliasowe. obrazy w Photoshopie wyglądają gładko, ale te wyglądają jak chrupiące, jak super wyostrzone.php imagejpeg jakość śmierdzi: dlaczego?
spójrz na these samples, pokazując pełny rozmiar po lewej i miniaturki po prawej (widok w 100%). zdjęcie wychodzi na jaw z zaostrzoną fryzurą, ale wielu ludzi może nie przejmować się tym. rysunek jest jednak nie do przyjęcia. te zakrzywione linie w ogóle nie powodują anty-aliasu i stają się przerywanymi liniami.
im przy użyciu imagejpg(), a jakość jpg, którą wybiorę, nie ma wpływu na chrupkość. Oto niektóre z kodu otaczającego go:
$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);
jakieś pomysły? czy to normalne? dzięki!
Nie będzie dużej różnicy między 90 a 100. Poza tym, myślę, że to bardziej operacja skalowania niż operacja składowania powoduje marnowanie wyniku. Ponadto OP powiedział, że zmiana jakości niczego nie poprawia. – zneak
prawda, ale może pomóc ... 10% ... 'imagecopyresampled()' zdziałało dla mnie cuda w przeszłości. – jordanstephens
Zgadzam się, "spróbuj użyć imagecopyresampled() zamiast imagecopyresized()" –