Mają one zazwyczaj rozdzielczość około 500px wysokości i szerokości.
Skaluję je do różnych rozmiarów, między innymi do 1024x768, czy też 1280x1024
Skrypt wygląda mniej więcej tak:
switch ($rozmiar) { case "1": $nszerokosc = "1024"; $nwysokosc = "768"; break; case "2": $nszerokosc = "1152"; $nwysokosc = "864"; break; .... .... } ... if ($rozmiar < 1) { $im = imagecreatefromjpeg($file); } else { $thumb = imagecreatetruecolor($nszerokosc, $nwysokosc); $im = imagecreatefromjpeg($file); imagecopyresized($thumb, $im, 0, 0, 0, 0, $nszerokosc, $nwysokosc, $width, $height); } ... if ($rozmiar < 1) { imagejpeg($im); imagedestroy($im); } else { imagejpeg($thumb); imagedestroy($thumb); }
Mam z tym dwa problemy, właściwie jeden problem i jedno pytanie:
Problem:
Niektóre obrazki ładnie skaluje, nawet do bardzo dużych rozdzielczości, innych natomiast nie chce (wyświetlają się w oryginalnych rozmiarach), bądź pojawiają się przekłamania (zamiast np. 1280x1200 jest 1024x768).
Wszystkie obrazki mają rozszerzenie jpg, podobne rozmiary (zarówno wielkość pliku jak i rozmiary grafiki).
Jak to możliwe, że niektóre obrazki ładnie skaluje, innych nie chce?
Pytanie:
Żadnych obrazków nie chce skalować do największej z możliwych rozdzielczości - 2560x1600. Z 1920x1440 jeszcze ładnie skaluje, jednak z większą już nie.
Czy ma to związek zbyt dużym zżeraniem zasobów podczas procesu?