Skocz do zawartości

Zmiana rozmiaru obrazka-problem


koras

Rekomendowane odpowiedzi

Witam!

Na swojej stronie mam skrypt który uploaduje a następnie skaluje rozmiar obrazka. Jednak po zmianie rozmiarów obrazki bardzo tracą na jakości. Oto przyklad zeskalowanego obrazka:

bddf12fd86e76eef65500a765c42c2655c50eab5-m.jpg

podczas gdy powinien wyglądać tak:

pudelko_avkis2006.jpg

Oto funkcja która odpowiada za zmiane rozmiarów obrazka:

 function resize_image($pic, $x, $typ)
{
if($typ=='gif'){ $img = imagecreatefromgif($pic); }
else if($typ=='jpg'){ $img = imagecreatefromjpeg($pic); }
else if($typ=='png'){ $img = imagecreatefrompng($pic); }


 $img_w = imagesx($img);
 $img_h = imagesy($img);

 $ratio = $img_w / $img_h;

 if($ratio > 1){
	 $new_img_w = $x;
	 $new_img_h = ($x / $ratio);
 }
 else{
	 $new_img_w = ($x * $ratio);
	 $new_img_h = $x;
 }

 $tempImg = imagecreate($new_img_w, $new_img_h);
 imagecopyresized($tempImg, $img, 0, 0, 0, 0, 
	 $new_img_w, $new_img_h, $img_w, $img_h);

 $name = substr($pic, 0, strlen($pic) - 4);

if($typ=='gif'){
$name = $name."-m.gif";
imagegif($tempImg, $name); }
else if($typ=='jpg'){
$name = $name."-m.jpg";
imagejpeg($tempImg, $name); }
else if($typ=='png'){
$name = $name."-m.png";
imagepng($tempImg, $name); }
unlink($pic);
}

Czy da się coś zrobić aby zeskalować obrazek, ale tak żeby nie stracił tak bardzo na jakości? Jeśli jak to co poprawić w tej funkcji?

Odnośnik do komentarza
Udostępnij na innych stronach

zmień imagecopyresized -> imagecopyresampled

dodatkowo mozesz ustawic jakos zapisu JPG

imagejpeg($tempImg, $name); -> imagejpeg($tempImg, $name, nn);

Gdzie nn = 1-100 (domyślnie 75 )

Odnośnik do komentarza
Udostępnij na innych stronach

właśnie to samo znalałem w examplach na php.net B) ale i tak dzięki.

ps. ten skrypcik jest na stronę torrent. Na dole znajduje sie informacja: "Nie możesz używać tego serwisu do rozpowszechniania lub ściągania materiałów do których nie masz odpowiednich praw lub licencji". Jeśli ktoś nie przestrzega tej informacji to juz jego sprawa

Odnośnik do komentarza
Udostępnij na innych stronach

koras: Ale ty odpowiadasz za to co udostępniasz na swojej stronie. eDonkey... Kazaa... Napster... następny będzie Soulseek a potem BitTorrent B) Ale z nim może być ciężej ale i tak się uda.

yavaho: To zalezy od umiejętności osoby, która tworzy skrypt :) Nie każda grafika powinna być zapisywana jako JPG 100% ;)

Odnośnik do komentarza
Udostępnij na innych stronach

To zalezy od umiejętności osoby, która tworzy skrypt
Tak oczywiście, ale czasem niektóre funkcje blokowane sa na serwerach, jak np: imageAntiAlias() i ciężko jest osiągnąć oczekiwany rezultat, gdy np z porównaniu z photoshopem taka miniaturka wychodzi 10 razy większa (w kb).

.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności