Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jakość obrazka
Forum PHP.pl > Forum > Przedszkole
cornholio666
Witam

Mam kilka fotek zrobionych w dobrej jakosc. Napisalem skrypcik ktory zmniejsze je do odpowiednich rozmiarow (chodzi o wys i szer). Tyle ze jakosc jest słaba i rozmiar (waga) jest duza.Czesc kodu:

  1. <?php
  2.  
  3.  $images[0] = 'DSC03990.jpg';
  4.  $newheight = 300;
  5.  
  6.  header("Content-type: image/jpeg");
  7.  
  8.  for($i=0;$i < count($images); $i++)
  9.  {
  10.  $image = "gal/".$images[$i]; //$image zawiera sciezke do pliku
  11.  
  12.  list($width,$height) = getimagesize($image); //pobiera szerokosc i wysokosc obrazka
  13.  $newwidth = ($newheight/$height)*$width; //nowa szerokosc 
  14.  
  15.  $thumb = imagecreatetruecolor($newwidth, $newheight);
  16.  $nmImage = ImageCreateFromJpeg($image);
  17.  imagecopyresized($thumb, $nmImage, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  18.  imagejpeg($thumb,"gal/miniaturki/".$images[$i],100);
  19.  }
  20.  
  21. ?>


Chodz mi o to zeby fotka zostala zmniejszona ale jakosc zachowana + maly rozmiar pliku.

Przykladowo Pajączek robi miniaturki w dobrej jakosci i o malym rozmiarze.
Jak to zrobic przy pomocy php?
snipe
Lepsza jakosc mozesz uzyskac jak uzyjesz imagecopyresampled()
son
Cytat(cornholio666 @ 2006-02-23 11:26:16)
  1. <?php
  2.  
  3.  $images[0] = 'DSC03990.jpg';
  4.  $newheight = 300;
  5.  
  6.  header("Content-type: image/jpeg");
  7.  
  8.  for($i=0;$i < count($images); $i++)
  9.  {
  10.      $image = "gal/".$images[$i];  //$image zawiera sciezke do pliku
  11.      
  12.      list($width,$height) = getimagesize($image);  //pobiera szerokosc i wysokosc obrazka
  13.      $newwidth = ($newheight/$height)*$width;      //nowa szerokosc 
  14.      
  15.      $thumb = imagecreatetruecolor($newwidth, $newheight);
  16.      $nmImage = ImageCreateFromJpeg($image);
  17.      imagecopyresized($thumb, $nmImage, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  18.      imagejpeg($thumb,"gal/miniaturki/".$images[$i],100);
  19.  }
  20.  
  21. ?>

Zwróć uwagę na ostatnią linijkę kodu:
Kod
imagejpeg($thumb,"gal/miniaturki/".$images[$i],100);

To właśnie ostatni parametr odpowiedzialny jest za jakość. Ty masz ustawine na 100 czyli brak kompresji. Zmień to na np. 85 lub 75 a obrazek zostanie skopresowany bez widocznych strat na jakości.

Pozdrawiam
cornholio666
Cytat
Lepsza jakosc mozesz uzyskac jak uzyjesz imagecopyresampled()


dzieki o to mi chodzilo
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.