Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Reskalowanie Obrazkow - Pomocy !
Forum PHP.pl > Forum > PHP
luckyluc
Na stronie Bastka znalazlem skrypt do reskalowania obrazkow. Niestety nie dziala sad.gif Byc moze cos zle robie. Zastanawia mnie pare rzeczy.

1. W funkcji mamy 4 zmienne ($i,$nw,$p,$nn), a wywolujemy tylko trzy ($nazwa_pliku,"150",$nazwa_pliku)
2. Jaka nazwe bedzie mial reskalowany plik i gdzie on sie zapisze
3. Jak wyswietlic reskalowany plik
4. Jakie prawa trzeba nadac ?

Prosze o pomoc bardziej doswiadczonych kolegow i kolezanek smile.gif

  1. <? 
  2. function skaluj_jpg($i,$nw,$p,$nn) { 
  3.  
  4. //tworzymy obrazek z przesłanego w wywołaniu funkcji 
  5. $img=imagecreatefromjpeg("$i"); 
  6.  
  7. //określamy wysokość i szerokość 
  8. $ow=imagesx($img); 
  9. $oh=imagesy($img); 
  10.  
  11. $scale=$nw/$ow; 
  12. $nh=ceil($oh*$scale); 
  13.  
  14. //tworzymy nowy obrazek 
  15. $newimg=imagecreate($nw,$nh); 
  16. $quality = "96"; 
  17.  
  18. //kopiujemy obraz z pierwszego obrazka 
  19. imagecopyresized($newimg,$img,0,0,0,0,$nw,$nh,$ow,$oh); 
  20.  
  21. //tworzymy obrazek 
  22. imagejpeg($newimg, $p.$nn, $quality); 
  23. return true; 
  24. } 
  25.  
  26.  
  27. //wywołujemy funkcję - ustawiamy przykładowo max. szer. na 150px 
  28. skaluj_jpg($nazwa_pliku,"150",$nazwa_pliku); 
  29. ?>
luckyluc
Poprawilem skrypt. Zdjecie sie pomiejsza, ale nic poza tym pomniejszonym zdjeciem nie ma na stronie exclamation.gif!

Jak to umiescic w kodzie html questionmark.gif?




  1. <?php 
  2.  
  3. // Content type
  4. header('Content-type: image/jpeg');
  5.  
  6.  
  7. function skaluj_jpg($filename,$new_width) { 
  8.  
  9.  
  10. //określamy wysokość i szerokość oryginalnego pliku
  11. list($width, $height) = getimagesize($filename);
  12.  
  13. //określamy wysokość, szerokość i kompresje nowego pliku
  14. $scale=$new_width/$width;
  15. $new_height = ceil($height*$scale);
  16. $quality = "96"; 
  17.  
  18.  
  19. // Kopiujemy obraz i pomiejszamy
  20. $image_p = imagecreatetruecolor($new_width, $new_height);
  21. $image = imagecreatefromjpeg($filename);
  22. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  23.  
  24. // Tworzymy obrazek
  25. imagejpeg($image_p, null, $quality);
  26.  
  27. return true; 
  28. } 
  29.  
  30.  
  31. //wywołujemy funkcję - ustawiamy przykładowo max. szer. na 150px 
  32. $foto=skaluj_jpg('plik.jpg',"100");
  33.  
  34.  
  35. <p align=center>to jest plik - <img border=4 src="$foto"></p>
  36.  
  37. ";
  38.  
  39. ?>
LBO
Było już wiele razy.
Wywołując imagejpeg" title="Zobacz w manualu php" target="_manual($image_p, '', $quality); wysyłasz zdjęcie do przeglądarki. Nie możesz dodać zwyczajnie do skryptu tekstu z HTML, to tak jakbys coś dodawał do JPEGa.

Swój skrypt musisz wywołać z poziomu strony ze znacznika img.
  1. <img src="skryptWyrzucajacyZdjecieDoPrzegladarki.php?jakies=potrzebne&zmienne" alt="" />


edit:
Traktuj skrypt generujący zdjęcie, jak zwykły plik zdjęciowy.
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.