Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skalowanie zdjęć
Forum PHP.pl > Forum > Przedszkole
miras
Witam, mam pytanie odnośnie skalowania zdjęć w php, tak, żeby zachowywały swoje proporcje, bo np. w css jak dam np. #zdjecie img i tutaj ustawię rozmiar tego zdjęcia, to te zdjęcie robi się takie 'nienaturalne', jak to wykonać w php, żeby zdjęcia zachowały swoją naturalność ?
bahh
W nowych przeglądarkach możesz używać wartości min-width min-height jak i max-width i max-height - W CSS rzecz jasna

W php musisz posłużyć się już proporcją

  1. $img="http://www.xxx.pl/obraz.jpg";
  2. list($width, $height) = getimagesize("$img");
  3.  
  4. echo("$width $height");


Tutaj masz skrypt który odczyta ci rozmiary zdjęcia
miras
no tak rozmiary, ale jak zeskalować te zdjęcie ?
bahh
niech bd skalowanie do szerokości 300px

więc robisz proporcję (dodajesz to zamiast echo("$width $height");

  1. $height = ($height*300)/$width
  2.  
  3. echo '<img src="'.$img.'" width="300" height="'.$height.'">';


b4rt3kk
Takie sztuczne tworzenie miniaturek jest bardzo nie ergonomiczne, bo przeglądarka i tak musi wczytać zdjęcie, powiedzmy 1920px na 1200px po czym wyświetlić je w pomniejszonej skali. Tak czy siak ma powiedzmy 2MB do pobrania. Jeśli interesuje Cię przeskalowanie zdjęcia, tj. jego równomierne zmniejszenie to w css wystarczy, że nadasz mu jedną wartość, szerokość lub wysokość, weźmy za przykład rozmiar który podałem wcześniej:

  1. img {
  2. width: 192px;
  3. }


wtedy height będzie wynosił 120px.
Evinek
http://www.white-hat-web-design.co.uk/blog...mages-with-php/

Wypróbuj i przeanalizuj kod.

Najważniejsze linijki:

  1. function resizeToHeight($height) {
  2.  
  3. $ratio = $height / $this->getHeight();
  4. $width = $this->getWidth() * $ratio;
  5. $this->resize($width,$height);
  6. }
  7.  
  8. function resizeToWidth($width) {
  9. $ratio = $width / $this->getWidth();
  10. $height = $this->getheight() * $ratio;
  11. $this->resize($width,$height);
  12. }


Czyli do danej szerokości lub wysokości skalujesz.
Poszukaj również w google na temat skalowania i proporcjach.
http://blog.psboy.pl/2011/05/pomniejszanie...obrazkow-w-php/

PS.
$ratio to proporcje.
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.