Loading:


Zmiana wielkości obrazka JPEG " w locie " (kalibracja do rozmarów)

Skrypt generuje podany obrazek do obrazu JPEG, który jest kalibrowany do odpowiednich rozmiarów. Oznacza to, że zależności między wysokością oraz szerokością zostają zachowane, czyli obrazki nie są nie naturalnie rozciągane.

 

Przykład bazuje na szerokości 80 pikseli oraz wysokości równej 60 pikseli.



//zastosowanie kodu:
przeskalujObrazek('logo.jpg', 80, 60);



Napisz Artyku³

Listing

<?php
$obrazek = "http://funkcje.net/obrazek.jpg";
$max_szerokosc = 80;
$max_wysokosc = 60;

//KOD POBRANY ZE STRONY www.Funkcje.net
//WSZELKIE PRAWA AUTORSKIE ZASTRZEŻONE
function przeskalujObrazek($obrazek, $max_szerokosc, $max_wysokosc) {

  $rozmiar = GetImagesSize($obrazek);
  $szerokosc = $rozmiar[0];
  $wysokosc = $rozmiar[1];

  $wspolczynnik_x = $max_szerokosc / $szerokosc;
  $wspolczynnik_y = $max_wysokosc / $wysokosc;

  if (($szerokosc <= $max_szerokosc) && ($wysokosc <= $max_wysokosc)) {
    $nowa_szerokosc = $szerokosc;
    $nowa_wysokosc = $wysokosc;
  }
  else if (($wspolczynik_x * $wysokosc) < $max_wysokosc) {
    $nowa_wysokosc = ceil($wspolczynnik_x * $wysokosc);
    $nowa_szerokosc = $max_szerokosc;
  }
  else {
    $nowa_szerokosc = ceil(wspolczynnik_y * $szerokosc);
    $nowa_wysokosc = $max_wysokosc;
  }

  $zrd = ImageCreateFromJpeg($obrazek);
  $prz = ImageCreate($nowa_szerokosc, $nowa_wysokosc);
  ImageCopyResized($prz, $zrd, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc);

  header('Content-type: Image/jpeg');
  ImageJpeg($prz, null, -1);
  ImageDestroy($prz);
  ImageDestroy($zrd);
}

?>




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38423
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2020 v.1.5 | design: diviXdesign & rainbowcolors